Apache kafka 突然间,卡夫卡流(scala)应用程序陷入了重新加入的过程(没有明显的原因),并且从未完成

Apache kafka 突然间,卡夫卡流(scala)应用程序陷入了重新加入的过程(没有明显的原因),并且从未完成,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我在摆弄K8s处理的卡夫卡流。 到目前为止,情况或多或少还不错,但在测试环境中观察到奇怪的行为: [Consumer clientId=dbe-livestream-kafka-streams-77185a88-71a7-40cd-8774-aeecc04054e1-StreamThread-1-Consumer,groupId=dbe-livestream-kafka-streams]我们收到了一份分配[_livestream.dbe.tradingcore.sporteventmapping

我在摆弄K8s处理的卡夫卡流。 到目前为止,情况或多或少还不错,但在测试环境中观察到奇怪的行为:

[Consumer clientId=dbe-livestream-kafka-streams-77185a88-71a7-40cd-8774-aeecc04054e1-StreamThread-1-Consumer,groupId=dbe-livestream-kafka-streams]我们收到了一份分配[_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.tennis-table-eam.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]与当前订阅不匹配(|u livestream.dbe.betmanager.sporteventmappings表| u livestream.dbe.trading|u livestream.dbe.tradingcore.sporteventmappings表| livestream.dbe.tennis.markets表| livestream.dbe.tennis.markets表|)很可能在我们加入组后订阅已更改。将尝试使用当前订阅重新加入组

据我所知,内部状态不知何故被破坏了,流的真实来源与代理/动物园管理员的真实来源发生冲突。这种行为从未终止:我只是让它挂了几天,忙于处理另一件事情,但它仍然是在
警告
级别报告的。除此之外:没有报告任何
错误
s这一次


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

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

在您的情况下,订阅不包含
livestream.dbe.netsing.results表
,但分配了相应的分区


请注意,Kafka Streams要求具有相同
应用程序.id
的所有实例都必须执行确切的some
拓扑,从而订阅确切的some主题。

我看到了消息,但它只是一个
警告,表示KS将尝试重新加入。这样的错误通常由KS修复吗或者我遇到了预期的行为?好吧,KS试图对该问题保持弹性(因此尝试重新加入并非意外)。但我不认为存在需要修复的错误(给定提供的数据)。不同的应用程序使用相同的
application.id
,这似乎更像是一个用户错误。必须有某个应用程序使用相同的
application.id
订阅
livestream.dbe.netsing.results table
——因此,正确的“修复”就是让每个应用程序都使用自己的
应用程序.id
。我在一次JUnit测试中遇到了同样的问题,该测试使用了嵌入式Kafka和Spring Cloud Stream Kafka Streams Binder。没有“第二个应用程序”正在运行,每次运行之前我都会清理Zookeeper和Kafka的临时文件夹。但是,如果我将num.stream.threads设置为1以外的任何值,我会在从10开始的6次运行中得到该错误,有时它会启动并运行得相当好(仍然抛出相同的警告,但似乎不会影响测试结果)。可能是春季的错误?(Spring做了很多奇怪的事情,并不总是“正确地”使用Kafka流…)