gpt4 book ai didi

java - Kafka Streams - 一对二无法操作 - 错误的分区分配

转载 作者:行者123 更新时间:2023-11-30 02:02:03 24 4
gpt4 key购买 nike

在我公司的一个应用程序中,为了对称为 LIVE 和 PRE-MATCH 的 2 组消息应用一些转换,我们创建 2 个 Kafka 流,每个组一个。这两个流都正确启动,但是其中一个始终是按时间顺序创建的第二个流,不会进行任何更改:我的意思是它不会消耗启动主题中的任何内容。

对日志的分析表明,主题和分区的配置一定存在问题:

2018-09-26 11:36:59,963 [INFO ] [] [StreamThread-2] [o.a.k.c.c.i.ConsumerCoordinator] - Setting newly assigned partitions [] for group Union
2018-09-26 11:36:59,963 [INFO ] [] [StreamThread-1] [o.a.k.c.c.i.ConsumerCoordinator] - Setting newly assigned partitions [betgenius.integralfeed.live-0] for group Union

正如您在上面的日志部分中看到的,与 LIVE feed 关联的 StreamThread-1 获得了映射到正确源主题的正确分区分配; StreamThread-2(在本例中与 PRE-MATCH feed 相关联)似乎接收到空源主题的分区分配,但实际上是不运行的主题。

如果我人为地强制在 LIVE 流之前创建 PRE-MATCH 流,情况就会相反。

用于创建 2 个流的代码完全相同,我只是更改了开始主题和结束主题。

我的 Kafka 配置是否可能没有足够的可用资源?

最佳答案

根据提供的日志,似乎您对两个 Kafka 流使用相同的 groupId Union ,但它们对于每个流应该是唯一的。因此,请确保为设置属性 application.id 提供不同的值。

application.id - 流处理应用程序的标识符,在 Kafka 集群中必须是唯一的。

关于java - Kafka Streams - 一对二无法操作 - 错误的分区分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52523181/

24 4 0