突然 Kafka Streams (scala) 应用程序陷入重新加入过程(没有明显原因)并且从未完成
Suddenly Kafka Streams (scala) app falls into the rejoining process (with no obvious reason) and never completes it
我正在处理由 K8s 处理的 Kafka Streams。
到目前为止它或多或少都很好,但在测试环境中观察到奇怪的行为:
[Consumer clientId=dbe-livestream-kafka-streams-77185a88-71a7-40cd-8774-aeecc04054e1-StreamThread-1-consumer, groupId=dbe-livestream-kafka-streams] We received an assignment [_livestream.dbe.tradingcore.sporteventmappings-table-0, _livestream.dbe.tradingcore.sporteventmappings-table-2, _livestream.dbe.tradingcore.sporteventmappings-table-4, _livestream.dbe.tradingcore.sporteventmappings-table-6, livestream.dbe.tennis.results-table-0, livestream.dbe.tennis.results-table-2, livestream.dbe.tennis.results-table-4, livestream.dbe.tennis.results-table-6, _livestream.dbe.betmanager.sporteventmappings-table-0, _livestream.dbe.betmanager.sporteventmappings-table-2, _livestream.dbe.betmanager.sporteventmappings-table-4, _livestream.dbe.betmanager.sporteventmappings-table-6] that doesn't match our current subscription Subscribe(_livestream.dbe.betmanager.sporteventmappings-table|_livestream.dbe.trading_states|_livestream.dbe.tradingcore.sporteventmappings-table|livestream.dbe.tennis.markets|livestream.dbe.tennis.markets-table); it is likely that the subscription has changed since we joined the group. Will try re-join the group with current subscription
据我所知,内部状态不知何故被破坏,Stream 的真实来源与 broker/zookeeper 的真实来源冲突。这种行为永远不会终止:我只是让它挂了几天,因为它忙于其他事情,但它仍然是 WARN
级别的报告。不仅如此:这次没有报告 ERROR
。
我什么都没有改变;没有部署新实例;没有以任何可能影响上述 Kafka Streams 应用程序的方式操纵 Kafka 经纪人。有什么想法吗?
错误消息本身表明,您的订阅有问题。如果您有两个使用相同 application.id
的 Kafka Streams 实例,但两者都没有订阅确切的某些主题,则可能会发生这种情况。
在您的情况下,订阅不包含 livestream.dbe.tennis.results-table
但分配了相应的分区。
请注意,Kafka Streams 要求具有相同 application.id
的所有实例都需要执行确切的一些 Topology
,从而订阅确切的一些主题。
我正在处理由 K8s 处理的 Kafka Streams。 到目前为止它或多或少都很好,但在测试环境中观察到奇怪的行为:
[Consumer clientId=dbe-livestream-kafka-streams-77185a88-71a7-40cd-8774-aeecc04054e1-StreamThread-1-consumer, groupId=dbe-livestream-kafka-streams] We received an assignment [_livestream.dbe.tradingcore.sporteventmappings-table-0, _livestream.dbe.tradingcore.sporteventmappings-table-2, _livestream.dbe.tradingcore.sporteventmappings-table-4, _livestream.dbe.tradingcore.sporteventmappings-table-6, livestream.dbe.tennis.results-table-0, livestream.dbe.tennis.results-table-2, livestream.dbe.tennis.results-table-4, livestream.dbe.tennis.results-table-6, _livestream.dbe.betmanager.sporteventmappings-table-0, _livestream.dbe.betmanager.sporteventmappings-table-2, _livestream.dbe.betmanager.sporteventmappings-table-4, _livestream.dbe.betmanager.sporteventmappings-table-6] that doesn't match our current subscription Subscribe(_livestream.dbe.betmanager.sporteventmappings-table|_livestream.dbe.trading_states|_livestream.dbe.tradingcore.sporteventmappings-table|livestream.dbe.tennis.markets|livestream.dbe.tennis.markets-table); it is likely that the subscription has changed since we joined the group. Will try re-join the group with current subscription
据我所知,内部状态不知何故被破坏,Stream 的真实来源与 broker/zookeeper 的真实来源冲突。这种行为永远不会终止:我只是让它挂了几天,因为它忙于其他事情,但它仍然是 WARN
级别的报告。不仅如此:这次没有报告 ERROR
。
我什么都没有改变;没有部署新实例;没有以任何可能影响上述 Kafka Streams 应用程序的方式操纵 Kafka 经纪人。有什么想法吗?
错误消息本身表明,您的订阅有问题。如果您有两个使用相同 application.id
的 Kafka Streams 实例,但两者都没有订阅确切的某些主题,则可能会发生这种情况。
在您的情况下,订阅不包含 livestream.dbe.tennis.results-table
但分配了相应的分区。
请注意,Kafka Streams 要求具有相同 application.id
的所有实例都需要执行确切的一些 Topology
,从而订阅确切的一些主题。