英文:
InconsistentGroupProtocolException while bringing a Kafka consumer up
问题
我们有两个Spring Kafka应用程序,最近我们开始在其中一个应用程序的日志文件中观察到InconsistentGroupProtocolException
。
原来我们在每个应用程序中有两个消费者,它们都有相同的group.Id,即'consumer-common-grp',但订阅的主题不同,即应用程序1中的主题A和应用程序2中的主题B。
作为修复措施,我们在应用程序1中更改了消费者组的名称,这解决了我们的问题。但我的问题是,这之前是如何工作的?因为我们之前没有遇到这个问题,根据我的理解,Kafka认为组名称+主题是唯一的,而不仅仅是组名称。
英文:
We have 2 spring Kafka applications, recently we started observing InconsistentGroupProtocolException
in one of our application logs file.
It turned out we have two consumers in each applications with same group.Id ‘consumer-common-grp’ but different topics i.e topic A in application 1 and topic B in application 2.
As a fix we changed the name of the consumer group in application 1 and it fixed our issue. But my question is how this was working before? As we didn’t face this issue before, and as per my understanding Kafka considers group name + topic for uniqueness not just group name.
答案1
得分: 0
Kafka不会“限制”消费者组...欢迎多个应用程序共享该字符串。当一个应用程序(重新)启动时,它将导致组内的所有成员重新平衡,以及完全停止消费者。是的,解决这个问题的方法是确保没有重叠(可以通过更好的证书策略和ACL来访问任何主题来实现)。
至于“不一致的协议”,您可以确保您的应用程序使用相同的kafka-clients
依赖版本和分配策略。
英文:
Kafka doesn't "fence" consumer groups... More than one app is more than welcome to share the string. When one (re)starts, it'll cause all in the group to rebalance, as well as full consumer stops. Yes, the fix to this is to ensure there is no overlap (can be accomplished by better certicate policies and ACLs to access any topic).
As far as "inconsistent protocol", you may ensure your apps are using the same kafka-clients
dependency version and assignment strategies
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论