Stream的分组消费与持久化

故障现象: 重复消费:当两个端口号同时收到了 ,也就是一个订单同时被两个服务获取到,那么就会造成数据错误。
在生产实际中一定要避免重复消费这个环节,而解决此现象可以采用分组或者持久化方法

在Stream中处于同一个group中的多个消费者是竞争关系,就能保证消息只会被其中一个应用消费一次。而不同组是可以全面消费的(重复消费),同一组内会发生竞争关系,只有其中一个可以消费。

重复消费的导致原因:默认分组 group是不同的,组流水号不一样,被认为不同组,可以消费

解决方法: 自定义配置分组

自定义配置分为同一个组,解决重复消费

(但分组后仍然有队列的历史记录,这样消息可能会导致堆积,队列应该要做成非持久队列,而rabbit的路由没有配,所以不同队列的广播,同队列的会轮询)

持久化

也就是autoDelete为false,为指定的会消息丢失,指定的重启后会继续接收

posted @ 2020-08-13 20:55  九角冰山  阅读(211)  评论(0)    收藏  举报