@linkgo 你好,想跟你请教个问题:
关于RocketMQ 生产者写入一条消息被多消费者消费到重复消息的问题,目前有什么解决方案吗?
根据debug来看. 的确是重复消费的...... 集群消费的 offset 从server给client的. 多个client 拿到的是相同的offset....
注意你的多个消费者是在 一个IP的机器上启动的么?这样就会重复接收消息,如果在多IP上启动消费者,MQ会自动分配子队列给各个消费者
看来都要实现:消费幂等性,业务处理了。
是集群消费,那集群消费有传送门么,rocketMQ的资料目前相对稀有呢...
即使消费者做出了确认消费的标识,消费者还是可能出现重复消费的情况,那是一般在高并发下的出现的,rocketmq有说明,几乎主流的mq都有这种情况,一般的就是消费幂等
目前rocketmq消费是有集群消费和广播消费,上面的楼主说错了,应该是集群消费只能有一个消费者消费一次,而广播消费则是所有的消费者都会消费一次,至于出现重复消费的问题,一种可能的原因是消费者消费完有没有做确认机制.
是集群消费
你是集群消费还是广播消费,集群消费的话每个消费者都会收到对应的消息,广播则不会,另外即使是集群环境下,也有可能重复消费消息,消费者自己要做到幂等
ps:说反了,不好意思,集群消费,只有一次,广播则多次,
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(8)
根据debug来看. 的确是重复消费的...... 集群消费的 offset 从server给client的. 多个client 拿到的是相同的offset....
注意你的多个消费者是在 一个IP的机器上启动的么?这样就会重复接收消息,如果在多IP上启动消费者,MQ会自动分配子队列给各个消费者
看来都要实现:消费幂等性,业务处理了。
是集群消费,那集群消费有传送门么,rocketMQ的资料目前相对稀有呢...
即使消费者做出了确认消费的标识,消费者还是可能出现重复消费的情况,那是一般在高并发下的出现的,rocketmq有说明,几乎主流的mq都有这种情况,一般的就是消费幂等
目前rocketmq消费是有集群消费和广播消费,上面的楼主说错了,应该是集群消费只能有一个消费者消费一次,而广播消费则是所有的消费者都会消费一次,至于出现重复消费的问题,一种可能的原因是消费者消费完有没有做确认机制.
是集群消费
你是集群消费还是广播消费,集群消费的话每个消费者都会收到对应的消息,广播则不会,另外即使是集群环境下,也有可能重复消费消息,消费者自己要做到幂等
ps:说反了,不好意思,集群消费,只有一次,广播则多次,