SpringCloud学习(二十一):Stream的分组消费与持久化
2023-03-14 22:42:57 时间
一、分组消费
1、依照8802克隆出一个8803
cloud-stream-rabbitmq-consumer8803
2、运行发现问题
启动服务注册eureka7001、rabbitmq、消息生产者8801、消息消费者8802、8803
访问 http://localhost:8801/sendMessage 刷新两次,发送两条消息
可以看到,8802和8803都收到了消息。
但事实上一条消息只能由一个消费者消费,这就是重复消费问题。
3、如何解决
进入rabbitmq的exchanges中可以看到,我们的8802和8803默认在不同的分组.
微服务应用放置于同一个group中,就能够保证消息只会被其中一个应用消费一次。
不同的组是可以消费的,同一个组内会发生竞争关系,只有其中一个可以消费。
假如我们不想让8802和8803重复接到消息,只想让消息被他们其中的一个接收,只需要为他们指定相同的分组即可。
再次测试:
可以看到,生产者8801发出的消息只会被8802和8803中的一个接收(默认为轮询)。
二、消息持久化
现在我们将8802中的分组去掉,保留8803中的分组 。然后关闭8802和8803,只剩下eureka7001和生产者8801在运行。
此时刷新 http://localhost:8801/sendMessage 4次。
然后再运行消费者8802和8803。
可以看到,即使在8801发送消息的时候8803并没有运行,但有分组属性的8803后台还是打印出了消息;
而没有分组属性的8802则没有打印出消息。
这个现象就被成为消息持久化。
相关文章
- 机器学习中的特征选择(变量筛选)方法简介
- 浅析EasyCVR安防视频能力在智慧小区建设场景中的应用及意义
- SIGCOMM最佳博士论文花落可编程网络
- 阿里与字节抢人,交换机还就香了!
- 研究了180,000+台交换机,微软得出一个出人意料的结论!
- 华为数据中心网络技术创新思路
- 痛心!美帝对华为设备下“毒手”!
- NFT在DeFi中的用例 NFT相关软件开发
- 再猜一猜:腾讯有多少网络设备?
- 华为眼中的数据通信网络未来十大趋势
- 从华为天才少年计划名单看传统通信专业的没落!
- CPO交换机怎么用听微软的!
- 抖音点单 ,美团送餐
- 《构建可预测的网络》获SIGCOMM最佳博士论文,大佬的腿好粗!
- 人均年薪增至84.7万元,腾讯还缺这样的SDN人
- 诺基亚: 这一张旧船票还能登上微软的客船
- BAMS封面论文:中国天然径流量格点数据集CNRD v1.0
- 腾讯山海网关:P4可编程交换机的实践与总结
- 先富带动后富,阿里云中标移动云SDN项目!
- 华为一骑绝尘,腾讯赶超新华三,数据交换网络领域中国局专利最新竞争态势!