卡夫卡在一段时间后停止,经纪人流失

时间:2020-05-04 14:31:44

标签: java apache-kafka debezium

我有4个kafka与debezium一起运行。几天运行良好后,三台kafka机器在一段时间内退出网络,并且在connectDistributed.out日志文件中,我收到了很多消息,但出现以下错误:

[2020-05-04 13:27:02,526] WARN [Consumer clientId=connector-consumer-sink-warehouse-6, 
groupId=connect-sink-warehouse] 133 partitions have leader brokers without a matching listener,
 including [SCT010-2, SC2010-2, SC1010-0, SC1010-1, SF4010-0, SUB010-0, SUB010-1, SWP010-0, 
SWP010-1, ACO010-2] (org.apache.kafka.clients.NetworkClient:1044)

我有4台Kafka机器,经纪人从0到3

192.168.240.70 - Broker 0
192.168.240.71 - Broker 1
192.168.240.72 - Broker 2
192.168.240.73 - Broker 3

动物园管理员:

192.168.240.70

遵循我的server.properties-除了listenersadvertised.listeners指向安装了Kafka的计算机的IP和必须broker.id唯一(从0到3):

broker.id=0
listeners=CONTROLLER://192.168.240.70:9091,INTERNAL://192.168.240.70:9092
advertised.listeners=CONTROLLER://192.168.240.70:9091,INTERNAL://192.168.240.70:9092
listener.security.protocol.map=CONTROLLER:PLAINTEXT,INTERNAL:PLAINTEXT
control.plane.listener.name=CONTROLLER
inter.broker.listener.name=INTERNAL
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/home/william/kafka/data/kafka/
num.partitions=3
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=1
log.retention.hours=150
log.retention.bytes=200000000000
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000

zookeeper.connect=192.168.240.70:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=3

kafka主题(配置/偏移和状态)显示复制中的问题。有一些与监听器相关的配置吗?

kafka manager under replicated info

关于连接器的运行状况:

connectors health on kafka connect

然后在kafka上连接。仅介绍一位经纪人:

kafka brokers

如何解决此错误?似乎与领导人选举或长时间没有经纪人访问权而找到领导人有关。

1 个答案:

答案 0 :(得分:0)

经过研究,我发现了问题所在。因此,要在这里提供帮助,请遵循有关问题的概念:

当我们创建分布式Kafka系统时,我们围绕经纪人分布主题并创建领导人选举人。就我而言,我有4位经纪人由Zookeeper即时选择,他们将成为某些主题的负责人。

由于四台Kafka服务器中的三台宕机了一个多小时,Zookeeper试图达到并无法达到领导者的水平。由于我的配置指出需要将同一主题复制到三个代理,因此Zookeeper无法保持该主题的健康。

我们有重新平衡配置:group.initial.rebalance.delay.ms=3,它尝试每3秒重新平衡一次。而且,在一名Kafka经纪人破产之前,我们尝试重新连接的次数有限。进行了尝试,而Zookeeper无法联系到丢失的经纪人。

以另一种方式,代理并没有失败,它们只能通过网络问题无法到达Zookeeper,因此,一段时间之后,Zookeeper的尝试被停止了,过了一段时间,Kafka代理再次可以访问,但是,重新平衡的尝试已停止。

只需重启我的经纪人,告诉Zookeeper重新连接就解决了我的问题,因为在重启时,Kafka经纪人告诉Zookeeper:-我在这里,等待您的指示。而Zookeeper意识到失去的领导者之后,将所有东西重新连接到正确的位置。

因此,尝试提供帮助。