Kafka Streams - 一对二不操作 - 错误的分区分配
Kafka Streams - one on two does not operate - wrong partition assignments
在我公司的一个应用程序中,为了对 2 组消息应用一些转换,称为 LIVE 和 PRE-MATCH,我们创建了 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 提要相关联的 StreamThread-1 获得了映射到正确源主题的分区的正确分配;在这种情况下与 PRE-MATCH 提要相关联的 StreamThread-2 似乎接收到一个空源主题的分区分配,实际上是一个不运行的源主题。
如果我人为地强制在 LIVE 之前创建 PRE-MATCH 流,则情况相反。
用于创建 2 个流的代码完全相同,我只是更改了开始主题和结束主题。
会不会是我的Kafka配置资源不足?
根据提供的日志,您似乎对两个 Kafka 流使用相同的 groupId Union
,但它们对于每个流应该是唯一的。所以请确保您为设置 属性 application.id
.
提供了不同的值
application.id
- 流处理应用程序的标识符,在 Kafka 集群中必须是唯一的。
在我公司的一个应用程序中,为了对 2 组消息应用一些转换,称为 LIVE 和 PRE-MATCH,我们创建了 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 提要相关联的 StreamThread-1 获得了映射到正确源主题的分区的正确分配;在这种情况下与 PRE-MATCH 提要相关联的 StreamThread-2 似乎接收到一个空源主题的分区分配,实际上是一个不运行的源主题。
如果我人为地强制在 LIVE 之前创建 PRE-MATCH 流,则情况相反。
用于创建 2 个流的代码完全相同,我只是更改了开始主题和结束主题。
会不会是我的Kafka配置资源不足?
根据提供的日志,您似乎对两个 Kafka 流使用相同的 groupId Union
,但它们对于每个流应该是唯一的。所以请确保您为设置 属性 application.id
.
application.id
- 流处理应用程序的标识符,在 Kafka 集群中必须是唯一的。