跑的librdkafka里的consumer.c例子。编译成win32控制台程序运行。
broker上有120条消息,consumer消费者把这120条消息全部poll下来,但是发现poll过程中,offset=77的偏移地址会出现两次是怎么回事儿,导致多收到一条消息。这个正常吗。难道需要我在接下来的数据处理程序中区分offset,然后剔除重复多余的offset吗
跑的librdkafka里的consumer.c例子。编译成win32控制台程序运行。
broker上有120条消息,consumer消费者把这120条消息全部poll下来,但是发现poll过程中,offset=77的偏移地址会出现两次是怎么回事儿,导致多收到一条消息。这个正常吗。难道需要我在接下来的数据处理程序中区分offset,然后剔除重复多余的offset吗
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
从描述和日志来看,你在处理Kafka消息时遇到了一个特定的问题,即在偏移量offset为77的地方接收到了两条相同的消息。这不应该是一个正常的情况,正常情况下对于同一个偏移量(offset),Kafka consumer应该只接收到一次消息。这可能是由以下原因导致的:
至于是否需要你在接下来的数据处理程序中区分offset并剔除重复多余的offset,这是一个可能的解决方案。你可以在数据处理时记录已经处理过的offset,当遇到重复的offset时直接忽略。但是这种方法可能会导致你丢失部分消息(如果重复的消息没有被完全处理完),所以需要谨慎使用。更好的方式应该是尝试找出为什么会收到重复消息的根本原因并解决它。
总的来说,你需要先确定问题的来源,是Broker的问题、Consumer代码的问题还是网络问题,然后再根据问题的具体原因采取相应的解决措施。