锦瑟年华人无恙
2021-01-22 23:36服务器集群消费了kafka的同一条数据
问题来源:目前项目需求下:作为kafka消息consumer方,如果因为某些原因造成服务不可用,期间产生的历史数据,服务器重启之后希望从最新的offset开始消废。比如服务宕机前消废到了offset值是100,服务宕机一段时间,产生了100条数据,当服务重启之后希望从offset 201开始消废,从101到200之间的消息丢弃。
思路:目前有两种解决方案
1.每次重启生成新的groupId消废改topic,可以达到此目的
2.通过消息监听器,获取每个分区上最后的offset,设置从该offset开始消废
经过考虑采用第二种解决方案,通过配置ConcurrentMessageListenerContainer类,获取指定topic下的分区,得到当前的offset,然后设置消费者从该位置消废。此时发布测试产生了问题
测试环境有4台服务器a b c d ,主题为test-topic , 并且都在同一个group中,groupid为test-group。当来了一条消息,abcd四台服务器都进行了消废。理论上来说应该只会有一台服务器消废该消息。目前该问题尚未解决
希望有大佬能帮我答疑,有长
- 点赞
- 回答
- 收藏
- 复制链接分享
0条回答
为你推荐
- 重用Kafka消息的可能原因
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 1个回答
- 将Kafka的murmur2实现移植到Go
- encoding
- java
- hash
- 1个回答
- 如何使用php-rdkafka在kafka中确认消费消息?
- php
- 1个回答
- zookeeper集群关闭,为什么服务还能服务还能正常访问
- linux
- 负载均衡
- mysql
- java-ee
- 2个回答
- Flume和kafka连接的问题
- 大数据
- flume
- kafka 消息发布与订阅
- 1个回答
换一换