Kafka rebalance 触发时机

1089 发表于: 2020-04-21   最后更新时间: 2020-04-21 20:46:13   1,831 游览

当消费者组数量发生变化时候会触发consumer group rebalance

比如我现在有个group.id:test-group
我当前消费一个topic:test1,

如果我使用消费者组:test-group,再单独启动一个程序消费topic:test2 这个时候是否会触发rebalance呢?

发表于 2020-04-21
添加评论

不会,test2是另外的主题,不会影响test1的。

1089 -> 半兽人 4年前

感谢回答,但是当我测试时,第一个程序消费的test1 topic,第二个消费的是test2 toipc,启动第二个时,第一个消费程序打印日志如下:

23:04:07,379 DEBUG org.apache.kafka.clients.consumer.internals.AbstractCoordinator - [Consumer clientId=consumer-1, groupId=test-consumer] Sending JoinGroup ((type: JoinGroupRequest, groupId=test-consumer, sessionTimeout=10000, rebalanceTimeout=10000, memberId=consumer-1-ccc4eca4-04a4-4547-910f-142c58506c14, protocolType=consumer, groupProtocols=org.apache.kafka.common.requests.JoinGroupRequest$ProtocolMetadata@442675e1)) to coordinator DESKTOP-I0EG1MJ.localdomain:9092 (id: 2147483647 rack: null)
23:04:07,379 DEBUG org.apache.kafka.clients.NetworkClient - [Consumer clientId=consumer-1, groupId=test-consumer] Sending JOIN_GROUP {group_id=test-consumer,session_timeout=10000,rebalance_timeout=10000,member_id=consumer-1-ccc4eca4-04a4-4547-910f-142c58506c14,protocol_type=consumer,group_protocols=[{protocol_name=range,protocol_metadata=java.nio.HeapByteBuffer[pos=0 lim=22 cap=22]}]} with correlation id 146 to node 2147483647

在broker端也出现了Rebalance日志

半兽人 -> 1089 4年前

这个是消费者调度逻辑声明,不满足条件,不会进行rebalance的。
你可以观察,kafka与消费者保持的是长连接,如果你新增的时候,连接的端口一直是原来的(每次建议连接端口是随机的),那说明从未平衡过。

你的答案

查看kafka相关的其他问题或提一个您自己的问题