Kafka Connect Rebalance协议解析:Eager Rebalance VS Imcremental Cooperative Rebalance
在Kafka Connect的配置中有
connect.protocol
配置,可用于配置同一组Kafka Connect在Rebalance中的表现。
Kafka Connect的Rebalance的基础也是依赖于Kafka Group Membership协议,但它自身有两种协议根据协议的不同,Rebalance的过程也有很大的不同。这篇文章对Kafka Connect的两种Rebalance协议:Eager Rebalance和Imcremental Cooperative Rebalance进行分析,让大家明白在各种场景下如何选择合适的connect.protocol
。
Eager Rebalance
Kafka Connect组在Rebalance的时候跟Kafka Consumer组一样,也是需要一个Kafka broker作为Coordinator来进行Rebalance的协调,如下图所示。
而Kafka Connect的Eager Rebalance在Rebalance过程中表现的行为跟Kafka Consumer组是一样的,只要触发Rebalance,所有的同一组Kafka Connect都重新开始:重新加入组,选择Leader,Leader重新计算Assignment,Coordinator向每个Kafka Connect发送Assignment结果,Kafka Connect根据新的Assignment运行分配的Connectors和Tasks。
下面用几个场景进行举例。假设一组Kafka Connect运行两个Connectors,ConnectotA和ConnectorB,简写为(
AC0
和BC0
)。AC0的任务数为2,简写为AT1
、AT2
。BC0的任务数为1,简写为BT1
。一组有3个Kafka Connect,以W1
、W2
、W3
分别表示。