我正在使用docker swarm部署1个zookeeper和3个代理。我在那里有两个组,其中将我的客户应用程序复制到一个特定的组中。
在小组中,我遇到了一个问题。当一个消费者针对特定的组和主题时,就没有问题。但是,当我将某个消费者组的消费者复制为大于一个的消费者时,似乎只有一个消费者获得了所有分区,并且在实施了分区算法的情况下,从来没有均匀分布,除此之外,主要问题是团队有无限的平衡。
如果我不重新启动kafka服务器,则世代相传成千上万。
在我的kafka配置(properties.server)中,我有: 我的group.max.session.timeout.ms = 300000
在我的使用者代码中,我正在使用kafka-python: 消费者使用以下配置实例化:
self.kafka_server = KafkaConsumer(
group_id=self.kafka_topic,
bootstrap_servers=self.kafka_brokers,
enable_auto_commit=True,
value_deserializer=lambda x: json.loads(x),
api_version=(0, 10),
session_timeout_ms=300000,
heartbeat_interval_ms=100000,
max_poll_interval_ms=300000,
partition_assignment_strategy=[RoundRobinPartitionAssignor, RangePartitionAssignor]
)
sleep(10)
self.kafka_server.subscribe(topics=self.kafka_topic)
我的轮询代码是:
try:
while True:
fetch_from_all_partitions = self.kafka_server.poll(timeout_ms=3000, max_records=20)
正在正确联系消费者并与经纪人取得联系。但是,使用者日志显示没有问题。 kafka日志显示现在都出现了问题,似乎组协调员继续尝试无限地重新平衡。
谢谢
以下是日志输出:
[2019-08-13 18:47:20,294] INFO [GroupCoordinator 2]: Preparing to rebalance group group_name in state PreparingRebalance with old generation 124 (__consumer_offsets-22) (reason: Adding new member kafka-python-1.4.6-e2ea4ede-b28a-4ff1-a986-ef42efe9101a with group instanceid None) (kafka.coordinator.group.GroupCoordinator)
[2019-08-13 18:47:20,295] INFO [GroupCoordinator 2]: Stabilized group group_name generation 125 (__consumer_offsets-22) (kafka.coordinator.group.GroupCoordinator)
[2019-08-13 18:47:20,296] INFO [GroupCoordinator 2]: Assignment received from leader for group group_name for generation 125 (kafka.coordinator.group.GroupCoordinator)
这是无限的重复。