我有一个自定义的kafka设置,其中我的应用程序和kafka代理放在一个节点中。为了确保应用程序示例只使用该节点中的分区(以减少网络开销),我为组的所有成员分配了一个自定义分区赋值器。然而,如果一个代理失败,然后它重新加入集群,这会触发消费者重新平衡吗?类似地,如果我添加一个新的代理并触发分区重新分配脚本,这是否也会触发重新平衡?
pbgvytdp1#
通常,消费者再平衡将发生在以下情况:消费者加入或离开消费者群体。在达到超时之前,使用者无法向代理协调器发送心跳请求(请参阅) session.timeout.ms 以及 heartbeat.interval.ms )管理团队。使用者不调用 poll() 方法足够频繁(参见 max.poll.interval.ms ).使用者订阅已更改。与订阅匹配的主题的元数据已更改(即:分区数已增加)。已创建与订阅匹配的新主题(使用模式时)。与子选项匹配的主题已被删除(使用模式时)。当使用java使用者api手动触发重新平衡时(请参阅 Consumer#enforceRebalance() ).当作为集团协调人的经纪人失败时。因此,为了回答您的问题,添加一个新的代理不会触发分区重新分配。下面是一篇博客文章,解释了重新平衡协议是如何工作的apachekafka重新平衡协议,或者说是流应用程序背后的魔力。
session.timeout.ms
heartbeat.interval.ms
poll()
max.poll.interval.ms
Consumer#enforceRebalance()
1条答案
按热度按时间pbgvytdp1#
通常,消费者再平衡将发生在以下情况:
消费者加入或离开消费者群体。
在达到超时之前,使用者无法向代理协调器发送心跳请求(请参阅)
session.timeout.ms
以及heartbeat.interval.ms
)管理团队。使用者不调用
poll()
方法足够频繁(参见max.poll.interval.ms
).使用者订阅已更改。
与订阅匹配的主题的元数据已更改(即:分区数已增加)。
已创建与订阅匹配的新主题(使用模式时)。
与子选项匹配的主题已被删除(使用模式时)。
当使用java使用者api手动触发重新平衡时(请参阅
Consumer#enforceRebalance()
).当作为集团协调人的经纪人失败时。
因此,为了回答您的问题,添加一个新的代理不会触发分区重新分配。
下面是一篇博客文章,解释了重新平衡协议是如何工作的apachekafka重新平衡协议,或者说是流应用程序背后的魔力。