Kafka使用者在使用group-id时出现“标记协调器已死”错误

时间:2018-01-31 07:03:29

标签: amazon-web-services apache-kafka kubernetes

我在Kubernetes上运行了一个Kafka集群(在AWS上)。每个代理都有一个相应的外部负载均衡器(ELB),然后,Kafka的advertised.listeners已被适当设置,以便在客户端查询代理信息时返回ELB的DNS名称。大多数设置类似于提到的here

我创建了一个kafka使用者而没有指定任何group-id。有了这个消费者,从主题阅读消息就可以了。但是,如果我在创建kafka使用者时设置了group-id,则会收到以下错误消息:

2018-01-30    22:04:16,763.763.313055038:kafka.cluster:140735643595584:INFO:74479:Group coordinator for my-group-id is BrokerMetadata(nodeId=2, host=u'a17ee9a8a032411e8a3c902beb474154-867008169.us-west-2.elb.amazonaws.com', port=32402, rack=None)
2018-01-30 22:04:16,763.763.804912567:kafka.coordinator:140735643595584:INFO:74479:Discovered coordinator 2 for group my-group-id
2018-01-30 22:04:16,764.764.270067215:kafka.coordinator.consumer:140735643595584:INFO:74479:Revoking previously assigned partitions set([]) for group my-group-id
2018-01-30 22:04:16,866.866.26291275:kafka.coordinator:140735643595584:INFO:74479:(Re-)joining group my-group-id
2018-01-30 22:04:16,898.898.787975311:kafka.coordinator:140735643595584:INFO:74479:Joined group 'my-group-id' (generation 1) with member_id kafka-python-1.3.5-e31607c2-45ec-4461-8691-260bb84c76ba
2018-01-30 22:04:16,899.899.425029755:kafka.coordinator:140735643595584:INFO:74479:Elected group leader -- performing partition assignments using range
2018-01-30 22:04:16,936.936.614990234:kafka.coordinator:140735643595584:WARNING:74479:Marking the coordinator dead (node 2) for group my-group-id: [Error 15] GroupCoordinatorNotAvailableError.
2018-01-30 22:04:17,069.69.8890686035:kafka.cluster:140735643595584:INFO:74479:Group coordinator for my-group-id is BrokerMetadata(nodeId=2, host=u'my-elb.us-west-2.elb.amazonaws.com', port=32402, rack=None)

my-elb.us-west-2.elb.amazonaws.com:32402可从客户端访问。我使用kafkacat并将my-elb.us-west-2.elb.amazonaws.com:32402设置为代理地址,它能够列出主题,使用主题等。

任何想法可能出错?

2 个答案:

答案 0 :(得分:0)

当消费者客户端和协调器之间存在网络通信错误时,标记协调器死机(当协调器死亡且组需要重新平衡时也会发生这种情况)。有多种情况(偏移提交请求,获取偏移等)可能导致此问题。因此,要找到根本原因问题,您需要将日志记录级别设置为跟踪和调试:

  

logging.level.org.apache.kafka = TRACE

答案 1 :(得分:0)

问题在于server.properties中的3个配置设置设置不正确。

默认的最小同步内副本数为2(min.insync.replicas=2)。但是,内部主题设置的复制因子为1(offsets.topic.replication.factor=1)。

当消费者与group-ip连接时,必须将其相应的条目设为__consumer_offsets主题。更新此主题时,只编写了一个副本。这引发了错误,即同步副本的数量低于所需的数量。

org.apache.kafka.common.errors.NotEnoughReplicasException: Number of insync replicas for partition __consumer_offsets-42 is [1], below required minimum [2]

我将所需的同步副本数量更改为1,事情开始正常。

相关问题