Aus*_*nTX 5 java apache-kafka kubernetes apache-kafka-streams
我们有一个包含 100 个分区的主题,负载为每小时数百万条记录。
每当我们在 Kubernetes 中使用带有状态集的状态存储来部署新版本的流处理器时,我们都会遇到这个问题。
通常,我们需要 4 个 Pod 来处理 100 个分区的工作负载。
在部署新版本之前,4 个实例已使用主题中的数据进行更新。
当我们部署新版本时,四分之三的情况下,只有 2 或 3 个实例在一分钟内处理数据,其他实例抛出异常:
Error sending fetch request (sessionId=1175648978, epoch=189) to node 53: org.apache.kafka.common.errors.DisconnectException
Run Code Online (Sandbox Code Playgroud)
因此,分配给实例#4的分区中的所有数据都已累积,并且滞后正在增加......
如果我们将实例数量扩展到 6 或 8,则有 5 或 6 个实例正在处理数据,其他 3 或 2 个实例会抛出此异常:
Error sending fetch request (sessionId=1175648978, epoch=189) to node 53: org.apache.kafka.common.errors.DisconnectException
Run Code Online (Sandbox Code Playgroud)
如果我们让所有实例都这样运行,最终(有些在 4 到 36 小时后)所有实例都会正常,并且任何 pod 都不再出现异常。
任何解决此问题的建议都将受到赞赏。
谢谢,
奥斯汀
| 归档时间: |
|
| 查看次数: |
8287 次 |
| 最近记录: |