【发布时间】:2019-11-15 20:20:24
【问题描述】:
我正在使用单节点 Kafka(v 0.10.2) 和单节点 zookeeper (v 3.4.8),并且我的 controller.log 文件充满了这个异常
java.io.IOException: Connection to 1 was disconnected before the response was read
at kafka.utils.NetworkClientBlockingOps$.$anonfun$blockingSendAndReceive$3(NetworkClientBlockingOps.scala:114)
at kafka.utils.NetworkClientBlockingOps$.$anonfun$blockingSendAndReceive$3$adapted(NetworkClientBlockingOps.scala:112)
at scala.Option.foreach(Option.scala:257)
at kafka.utils.NetworkClientBlockingOps$.$anonfun$blockingSendAndReceive$1(NetworkClientBlockingOps.scala:112)
at kafka.utils.NetworkClientBlockingOps$.recursivePoll$1(NetworkClientBlockingOps.scala:136)
at kafka.utils.NetworkClientBlockingOps$.pollContinuously$extension(NetworkClientBlockingOps.scala:142)
at kafka.utils.NetworkClientBlockingOps$.blockingSendAndReceive$extension(NetworkClientBlockingOps.scala:108)
at kafka.controller.RequestSendThread.liftedTree1$1(ControllerChannelManager.scala:192)
at kafka.controller.RequestSendThread.doWork(ControllerChannelManager.scala:184)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:63)
我用谷歌搜索了这个异常,但找不到这个异常的根本原因。有人可以建议我为什么会发生此错误以及如何防止它吗?
【问题讨论】:
-
这意味着控制器正在等待代理 1 的响应,但没有得到响应。在单节点设置中看到这一点令人惊讶,因此您可能有 GC 暂停或运行工作负载,但适合设置,因为这是 JVM 无法有效地与自己对话。
-
@dawsaw 是的,在那个单节点集群(8 核,16 GB RAM)上我有大约 500 GB 数据。 280 个主题,每个主题平均有 100 个分区。那么你能建议一些方法来解决这个问题吗。你能告诉我如何确定你的节点是否过载?
-
28000 个分区太多了。尝试将这个数字减少到单个节点的最大值接近 2000
-
@dawsaw 你能告诉我这个分区号是怎么决定的吗?哪个资源造成了瓶颈。我有(8 核和 16 GB RAM 和 1TB SSD)
-
分区号是在主题级别配置的,broker配置默认是自动创建的主题。这里概述了这么多分区导致控制器问题的原因confluent.io/blog/…
标签: apache-kafka