首页 > 解决方案 > 向节点 53 发送获取请求 (sessionId=1175648978, epoch=189) 时出错:org.apache.kafka.common.errors.DisconnectException

问题描述

我们有一个包含 100 个分区的主题,负载是每小时数百万条记录。

每当我们在 Kubernetes 中使用 state-store 和 stateful-set 部署新版本的流处理器时,我们就会遇到这个问题。

通常,我们需要 4 个 Pod 来处理 100 个分区的工作负载。

在部署新版本之前,有 4 个实例使用来自主题的数据进行了更新。

在我们部署新版本时,四分之三,只有 2 或 3 个实例在一分钟内处理数据,其他实例抛出异常:

 Error sending fetch request (sessionId=1175648978, epoch=189) to node 53: org.apache.kafka.common.errors.DisconnectException

因此,分配给实例#4 的分区中的所有数据都已建立起来,并且延迟正在增加...

如果我们将实例的数量扩展到 6 或 8 个,那么 5 或 6 个实例正在处理数据,其他 3 或 2 个实例会抛出此异常:

 Error sending fetch request (sessionId=1175648978, epoch=189) to node 53: org.apache.kafka.common.errors.DisconnectException

如果我们让所有实例都这样运行,最终(有些在 4 到 36 小时后)所有实例都会正常运行,并且不会再出现任何 pod 异常。

任何解决此问题的建议将不胜感激。

谢谢,

奥斯汀

标签: javakubernetesapache-kafkaapache-kafka-streams

解决方案


推荐阅读