【Hazelcast系列十】可靠主题(Reliable Topic)

2022-04-18 00:00:00 配置 事件 可以通过 主题 可靠

在前一片文章中我们介绍了Hazelcast中的主题,但是由于没有数据的备份,主题中的事件可能丢失,为了提高数据可靠性Hazelcast提供了可靠主题。可靠主题也使用ITopic 接口,为了保证数据的可靠性,可靠主题使用Ringbuffer 数据结构备份主题的事件。和普通主题相比,可靠主题有以下优势:

  • 主题中的事件不会丢失。Ringbuffer默认有一个同步备份。
  • 每个可靠主题使用独立的Ringbuffer,各个主题之间互不影响。
  • 在脑裂环境中可靠主题无法工作。

下面是使用可靠主题发布事件的代码样例:

import com.hazelcast.core.Hazelcast
import kotlinx.coroutines.runBlocking

fun main() = runBlocking {
    val instance = Hazelcast.newHazelcastInstance()
    val topic = instance.getReliableTopic<Long>("reliable")
    var messageId = 1L
    while (true) {
        topic.publish(messageId)
        messageId++
        kotlinx.coroutines.delay(200L)
    }
}

相关文章