首页 > 解决方案 > 突然 Kafka Streams (scala) 应用程序陷入重新加入过程(没有明显原因)并且从未完成它

问题描述

我在搞乱由 K8s 处理的 Kafka Streams。到目前为止,它或多或少都很好,但在测试环境中观察到了奇怪的行为:

sporteventmappings-table|_livestream.dbe.trading_states|_livestream.dbe.tradingcore.sporteventmappings-table|livestream.dbe.tennis.markets|livestream.dbe.tennis.markets-table); 自从我们加入该组以来,订阅可能发生了变化。将尝试使用当前订阅重新加入群组

据我了解,内部状态不知何故被破坏了,Stream 的事实来源与经纪人/动物园管理员的来源冲突。这种行为永远不会终止:我只是让它挂了几天忙于其他事情,但它仍然是,在WARN级别报告。不仅如此:这次没有ERRORs报告。

我什么都没改变;没有部署新实例;没有以任何可能影响上述 Kafka Streams 应用程序的方式操纵 Kafka 代理。有什么想法有什么问题吗?

标签: apache-kafkaapache-kafka-streams

解决方案


错误消息本身表明您的订阅有问题。如果您有两个使用相同的 Kafka Streams 实例application.id,但两者都没有订阅确切的某些主题,则可能会发生这种情况。

在您的情况下,订阅不包含livestream.dbe.tennis.results-table但分配了相应的分区。

请注意,Kafka Streams 要求所有具有相同内容的实例application.id都需要执行确切的一些Topology,从而订阅确切的一些主题。


推荐阅读