这篇文章将为大家详细讲解有关如何实现Rocketmq消息队列广播消费测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一 机器部署
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消息队列广播消费测试”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。