首页 > 解决方案 > KafkaListner 没有解析主题名称

问题描述

我正在研究 + spring 和 java api。面临非常烦人的问题。我已经使用 kafka 主题模式方法来监听多个客户端的事件。以下是 kafka 消费者的代码,其中主题名称来自配置文件,后缀具有硬代码值。

${${service}.topic} value - test-env.demo.*.v1 后缀值为 - .cqrs.customer

@KafkaListener(
            topicPattern = "${${service}.topic}" + Constants.suffix,
            groupId = "test",
            id = "test")

因此,将为客户 abc 解析的最终主题名称。

test-env.demo.abc.v1.cqrs.customer

对于客户 xyz 将是

test-env.demo.xyz.v1.cqrs.customer

但是当生产者在以下任何主题上发出事件时。消费者什么也没听。

有人可以帮我解决这个问题。

谢谢

标签: springapache-kafkaspring-kafka

解决方案


您可以在应用程序日志中使用 grep 短语“分配的分区”,该行将包含有关分配给您的应用程序的分区的信息。如果成功,应该是这样的:

partitions assigned: [test-env.demo.abc.v1.cqrs.customer-0], 

如果分配的分区为空

partitions assigned: []

“测试”组中可能已经有一些其他消费者实例,并且它们正在处理消息。在这种情况下,请尝试更改组的名称。


推荐阅读