kafka集群controller节点连接不上受管节点

Jacky 发表于: 2019-10-28   最后更新时间: 2019-10-28 16:52:33   2,507 游览

版本:kafka_2.11-2.1.0

背景:kafka在运行一段时间后,controller节点会连接不上其中一个节点

控制节点日志:java.io.IOException: Connection to 5 was disconnected before the response was read

受管节点无异常日志,但是主机上netstate看有很多close_wite连接,并且主机内存消耗达到100%,生产者和消费者都有报错说连接不上节点kafka: broker not connected

zk集群正常,查看kafka每个topic状态都正常。

发表于 2019-10-28
添加评论

这,不是内存100%引起的问题嘛。。

Jacky -> 半兽人 5年前

内存100%只是个结果,同样的配置,其他节点都不会出现这种问题,只是这个节点,而且不止一次,是多次,都是这个节点。

Jacky -> 半兽人 5年前

重启,可以恢复,但过一段时间又会出现问题,有配置GC日志,但没有当时的日志,也就是说并没有达到GC的上限。

半兽人 -> Jacky 5年前

描述下该台机器的配置,集群情况,kafka设置的jvm等相关信息。

Jacky -> 半兽人 5年前

主机内存32G,JVM -Xmx4G -Xms4G,集群有10个节点,zk是5个节点

port=9092
host.name=主机IP
broker.id=5
num.network.threads=20
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=64
num.replca.fetchers=3
num.recovery.threads.per.data.dir=1
auto.create.topics.enable =false
delete.topic.enable=true
default.replication.factor =2
log.retention.hours=8
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=true
log.dirs=/data
zookeeper.connection.timeout.ms=30000
zookeeper.connect=ZK节点
connections.max.idle.ms=600000
半兽人 -> Jacky 5年前

都部署在同一台上,还是单节点的配置?

半兽人 -> Jacky 5年前

Kafka配置没问题,是否能监控到哪个应用把内存占那么高?(理论kafka最大是4G,jdk1.8的话额外的内存会只占buffer内存,随时可回收)

Jacky -> 半兽人 5年前

都是单机部署,上面只有kafka服务,没有其他的了。

Jacky -> 半兽人 5年前

异常重现后,我通过tcpdump,分析发现是controll-broker节点rst了异常节点的ack包,怀疑是不是节点间的健康检查心跳包发送超时导致连接被强制关闭?心跳配置是哪个项目项来着?

半兽人 -> Jacky 5年前

防火墙确认过了吗?
网络超时这种异常,在kafka日志里找找最初的触发时间。

你的答案

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