【Hazelcast系列十】可靠主题(Reliable Topic)
在前一片文章中我们介绍了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)
}
}
相关文章