这些条件将触发一组再平衡:对任何主题
主题创建的订阅列表的改变
分区数或删除
现有消费群成员死亡
新成员通过加入API
它是一个坏主意,有相同的消费集团(相同的ID)从多个主题耗时添加到现有的消费群。
至少它是有效的,对于好或坏,这取决于你的详细情况。 这是由官方Java客户端API的支持,看到这样的方法定义:
public void subscribe(Collection<String> topics,
ConsumerRebalanceListener listener)
它接受主题的集合。
如果其中一个话题的话务量很轻,是否会导致消费者群体重新平衡。
不,因为没有列出条件。如果我们从主题方面考虑它。只有在主题被删除或分区计数改变时,才会发生rebalcance。
更新。
感谢@Hans Jespersen对session和hearbeat的评论。
这是卡夫卡消费者的Javadoc引用:
订阅一组主题之后,当调用轮询(长)消费者将自动加入该群。民意调查API旨在确保消费者的生活。只要您继续调用投票,消费者就会留在该组中,并继续接收来自其分配的分区的消息。 在封面下方,轮询API向服务器发送定期心跳;当你停止调用投票(可能是因为引发异常),那么将不会发送心跳。如果在服务器收到检测信号之前经过配置的会话超时的一段时间,则消费者将被退出该组并且其分区将被重新分配。
并在你的问题,你问什么会触发再平衡
在这种情况下的参数,有两个CONFIGS已与再平衡的关系。它是session.timeout.ms和max.poll.records。其手段是显而易见的。
由此我们也可以知道,在投票之间做很多工作是一种不好的做法,开销工作可能会阻止心跳并导致会话超时。
你问关于最新版本0.11吗? –
@HansJespersen我们在0.10.x –