Stream 分组消费与持久化

比如在如下场景中,订单系统我们做集群部署,都会从RabbitMQ中获取订单信息,那如果一个订单同时被两个服务获取到,那么就会造成数据错误,我们得避免这种情况,这时我们就可以使用Stream中的消息分组来解决。
在这里插入图片描述
注意在Stream中处于同一个group中的多个消费者是竞争关系,就能够保证消息只会被其中一个应用消费一次。
不同组是可以全面消费的(重复消费),同一组内会发送竞争关系,只有其中一个可以消费。

分组:
在这里插入图片描述
同一个组会竞争资源,轮询。不同组会重复消费。

持久化

关于自定义分组

如果8802去掉分组,而8803不去掉,当8802/8803都关闭服务,8801这时候发送消息,8802再启动的时候不会重新获得未曾获得的消息并消费,而8803重启后会获得8801之前发送的消息并消费。

所以group分组属性在消息重复消费和消息持久化消费 避免消息丢失是非常重要的属性

就是默认的分组不会保留未曾获得的消息,自定义的分组会保留。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值