Java kafka消费组线程的线程顺序在每次启动时都不同

Java kafka消费组线程的线程顺序在每次启动时都不同,java,spring,spring-boot,apache-kafka,apache-kafka-streams,Java,Spring,Spring Boot,Apache Kafka,Apache Kafka Streams,我在SpringBoot2.1.4上下文中使用kafka streams 2.0.1。CONSUMER-ID具有以下模式(自动生成的bei kafka流!?): -StreamThread--(来源:StreamsConfig.java) 我发现:threadSequenceNumber值在我的应用程序启动时并不总是相同的,因为我有两个由bean提供的StreamThread。 我已经尝试通过使用@DependsOn注释bean来强制执行正确的顺序 每次threadSequenceNumber

我在SpringBoot2.1.4上下文中使用kafka streams 2.0.1。CONSUMER-ID具有以下模式(自动生成的bei kafka流!?):

-StreamThread--(来源:StreamsConfig.java)
我发现:
threadSequenceNumber
值在我的应用程序启动时并不总是相同的,因为我有两个由bean提供的StreamThread。 我已经尝试通过使用
@DependsOn
注释bean来强制执行正确的顺序

每次
threadSequenceNumber
更改时,最后的偏移量都会丢失。
有人知道我如何强制执行正确的顺序吗?

你的观察是正确的。线程序列号由Kafka Streams创建。Spring Boot对此无能为力

请注意,此行为将在即将发布的2.3版本中更改:

每次threadSequenceNumber更改时,最后的偏移量都会丢失


为什么会这样?偏移量是根据
应用程序.id提交的

您能不能输入该值?我的意思是,你能配置自动生成的id吗?我希望这是可能的。我试过了,所以用属性设置了值:
group.id
,但什么都没发生谢谢你的回答。就在一小时前,我知道了原因。我被春季开机更新分心了。原因是补偿。保留。在这个商业案例中,它只是随机发生的。是的。偏移量被提交到
应用程序.id
,并且与threadSequenceNumber没有关系。很抱歉-。-'
<client.id>-StreamThread-<threadSequenceNumber>-<consumer|producer|restore-consumer> (source: StreamsConfig.java)