共计 1279 个字符,预计需要花费 4 分钟才能阅读完成。
这篇文章将为大家详细讲解有关如何实现 Rocketmq 消息队列广播消费测试,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一 机器部署
1、机器组成
7 台机器,均为 16G 内存
每台服务器均有 4 个 CPU,2 核
2、运行环境配置
3、刷盘方式
每台机器 master 机器均采用异步刷盘方式
二 性能评测
1、评测目的
测试 consumer 端的广播模式消费。
2、评测指标
所属不同 consumerGroup 组的 consumer 端,在消费消息的过程中,对比消息 msgId 是否相同。
3、评测逻辑
consumer 端在广播模式消费场景中,consumerGroup 分组已经无意义。所有 consumer 端均可消费相同的消息。因此只需要比较被消费的消息 msgId 是否相同即可。
4、评测过程
(1)producer 端向 topic 名称为“orderTopicTest”队列发送海量消息,定为 10 条,发送消息后并记录每条消息的 msgId、queueId、topicId 等基本信息。
(2)配置 5 组不同的 consumerGroup,名称分别为:DefaultCluster、 DefaultCluster、DefaultCluster1、 DefaultCluster2、 DefaultCluster3(第一组、第二组设置相同的 consumerGroup 名称), 并分别对每组订阅相同的 topic、配置相同的 nameSrvAddr 地址,并且配置 consumer 端的消息模式为广播模式。
设置默认 DefaultCluster 组的 consumer 端关键代码如下:
设置默认 DefaultCluster1 组的 consumer 端关键代码如下:
(3)优先启动 5 个 consumer 端,然后启动 producer 端,发送消息后,即可在所有 consumer 端查看消息的消费记录。
第一组 consumer 消费记录如下:
第二组 consumer 消费记录如下:
第三组 consumer 消费记录如下:
第四组 consumer 消费记录如下:
第五组 consumer 消费记录如下:
(4)消息消费分析对比
第一组 与 第二组都属于 DefaultCluster 组,只是 instanceName 实例名称不同。
第三组、第四组、第五组的均属于不同的 Cluster 组,但 instanceName 实例名称相同。
分析五个组的消费记录,相同消息在所有 consumer 端的消费过程都是一样的,包括消息被消费的顺序、消息 msgId、消息所在的 queueId 都是一样的。
二 评测结果
rocketmq 具备广播消费的能力,正在运行的所有 consumer 实例,不管该 consumer 属于哪一个 consumerGroup 组,都可以消费同一条消息,并且所有 consumer 端消费消息的顺序、消息所在 queueId 等等都是相同的。
关于“如何实现 Rocketmq 消息队列广播消费测试”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。