8 SpringBoot整合RocketMQ实现消费者广播模式和负载均衡模式

18 篇文章 12 订阅

在这里插入图片描述

如上图,假如我们有多个消费者,消息生产者发送的消息,是每一个消费者都消费一次呢?还是通过一些机制,比如轮询机制,每个消息只被某一个消费者消费一次呢?

这里涉及到消费者的消费模式,一种是广播模式,还有一种是负载均衡模式;

广播模式是每个消费者,都会消费消息;

负载均衡模式是每一个消费只会被某一个消费者消费一次;

我们业务上一般用的是负载均衡模式,当然一些特殊场景需要用到广播模式,比如发送一个信息到邮箱,手机,站内提示;

我们可以通过@RocketMQMessageListenermessageModel属性值来设置,MessageModel.BROADCASTING是广播模式,MessageModel.CLUSTERING是默认集群负载均衡模式;

我们先集群负载均衡测试,加上messageModel=MessageModel.CLUSTERING

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pJU7vtRJ-1630718197196)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826143726996.png)]

我们启动两个实例,先启动一个RocketmqConsumer消费者实例,端口8084

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KhJ7qXkH-1630718197201)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826144503441.png)]

编辑配置,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gkYvQ9bX-1630718197202)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826144534662.png)]

Single instance only的勾选去掉,然后点OK按钮;

然后修改代码,启动端口改成8085

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oAu2vHu0-1630718197203)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826144703314.png)]

消费者输出信息改下;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZSmJQDv2-1630718197203)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826144718993.png)]

最后我们再启动一个消费者实例;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RHjmAsuy-1630718197204)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826144825339.png)]

我们启动消息生产者测试:

启动后,两个消费者控制台分别输出:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fGuL0uTA-1630718197204)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826144922059.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K1rio054-1630718197205)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826144930076.png)]

根据实验,我们发现消息被两个消费者负载均衡随机消费掉了。

我们再来测试下广播模式;修改messageModel=MessageModel.BROADCASTING

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-medAWvti-1630718197206)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826150836810.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0jxmVwqf-1630718197207)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210826150846427.png)]

测试发现,两个消费者客户端把消息都各自消费了一遍。广播模式测试OK;

微信搜一搜公众号【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值