【hazelcast入门系列之五】hazelcast的Topic使用

本文介绍hazelcast中Topic的使用。

Topic的基础使用

首先放上基础代码
示例代码
代码主要包含三部分:

  1. hazelcast Topic的配置
  2. 定义一个MessageListener
  3. 循环publish

通过运行main方法可以获得以下输出:

在publish的时候发现可以同时打印publish、receive的统计信息,是通过以下配置项进行配置的。

1
2
//设置进行信息统计
topicConfig.setStatisticsEnabled(true);

理解Topic

对于Topic来说,在hazelcast集群中,每个节点都会保存一份完整的订阅者的列表。
通过不同节点进行publish,默认是不保证有序的。如果打开配置项globalOrderEnabled,那么会通过计算topic的ID对应的分区,先把消息发送到包含该分区的节点上,然后再由该节点进行分发,从而保证了topic消息的有序性。

Topic底层是由分布式事件(Distributed Events)实现的,通过StripedExecutor来进行分发消息,根据事件源来交由固定的线程处理,从而保证了生成和发布消息的顺序一致性。

Topic的配置项

配置项 含义 备注
global-ordering-enabled 全局有序 默认为false
statistics-enabled 启用统计 默认true

Topic的表现也依赖于event.queue的配置,这个在后面分布式事件再详细介绍。

本文标题:【hazelcast入门系列之五】hazelcast的Topic使用

文章作者:roytrack

发布时间:2019年01月21日 - 23:01

原始链接:http://www.roytrack.com/2019/01/id9/

许可协议: 转载请保留原文链接及作者。