赞
踩
比如在如下场景中,订单系统我们做集群部署,都会从RabbitMQ中获取订单信息,那如果一个订单同时被两个服务获取到,那么就会造成数据错误,我们得避免这种情况,这时我们就可以使用Stream中的消息分组来解决。
注意在Stream中处于同一个group中的多个消费者是竞争关系,就能够保证消息只会被其中一个应用消费一次。
不同组是可以全面消费的(重复消费),同一组内会发送竞争关系,只有其中一个可以消费。
分组:
同一个组会竞争资源,轮询。不同组会重复消费。
持久化
关于自定义分组
如果8802去掉分组,而8803不去掉,当8802/8803都关闭服务,8801这时候发送消息,8802再启动的时候不会重新获得未曾获得的消息并消费,而8803重启后会获得8801之前发送的消息并消费。
所以group分组属性在消息重复消费和消息持久化消费 避免消息丢失是非常重要的属性
就是默认的分组不会保留未曾获得的消息,自定义的分组会保留。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。