Kafka如何有效避免消息重复消费的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计884个文字,预计阅读时间需要4分钟。
Hi,大家好,我是Mic,一个工作5年的程序员。粉丝找到我说:Mic老师,你能否回答这个问题,我就帮你?我当时就懵了,现在打赌都这么随意了吗?我问他是啥问题,他说:K。
普通人:Hi,大家好,我是Mic
一个工作5年的粉丝找到我。
他说: “Mic老师,你要是能回答出这个问题,我就佩服你”
我当场就懵了,现在打赌都这么随意了吗?
我问他问题是什么,他说“Kafka如何避免重复消费的问题!”
下面看看普通人和高手的回答!
Kafka怎么避免重复消费就是我们可以通过 我们可以在那个消息消费的这一端就是我们可以用类似于分布式锁的这样一个设计吧。
我消费一个消息的时候我可以直接用比如说redis里面的setNx这样一个指令,然后去把那个消息保存到redis里面然后后面再如果重复发送的话那我就直接只要去判断这个Redis里面有没有存在就好了。
高手:好的,关于这问题,我从几个方面来回答。
首先Kafka Broker上存储的消息,都有一个Offset标记。
然后kafka的消费者是通过offSet标记来维护当前已经消费的数据,
每消费一批数据,Kafka Broker就会更新OffSet的值,避免重复消费。
默认情况下,消息消费完以后,会自动提交Offset的值,避免重复消费。
本文共计884个文字,预计阅读时间需要4分钟。
Hi,大家好,我是Mic,一个工作5年的程序员。粉丝找到我说:Mic老师,你能否回答这个问题,我就帮你?我当时就懵了,现在打赌都这么随意了吗?我问他是啥问题,他说:K。
普通人:Hi,大家好,我是Mic
一个工作5年的粉丝找到我。
他说: “Mic老师,你要是能回答出这个问题,我就佩服你”
我当场就懵了,现在打赌都这么随意了吗?
我问他问题是什么,他说“Kafka如何避免重复消费的问题!”
下面看看普通人和高手的回答!
Kafka怎么避免重复消费就是我们可以通过 我们可以在那个消息消费的这一端就是我们可以用类似于分布式锁的这样一个设计吧。
我消费一个消息的时候我可以直接用比如说redis里面的setNx这样一个指令,然后去把那个消息保存到redis里面然后后面再如果重复发送的话那我就直接只要去判断这个Redis里面有没有存在就好了。
高手:好的,关于这问题,我从几个方面来回答。
首先Kafka Broker上存储的消息,都有一个Offset标记。
然后kafka的消费者是通过offSet标记来维护当前已经消费的数据,
每消费一批数据,Kafka Broker就会更新OffSet的值,避免重复消费。
默认情况下,消息消费完以后,会自动提交Offset的值,避免重复消费。

