我正在研究apache-kafka + 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
,但是当生产者针对以下任何主题发出事件时。消费者什么也没听。
有人可以帮我这个忙吗?
谢谢
答案 0 :(得分:0)
您可以在应用程序日志中grep短语“分配的分区”,此行将包含有关将哪些分区分配给您的应用程序的信息。如果成功,应该类似于:
partitions assigned: [test-env.demo.abc.v1.cqrs.customer-0],
如果分配的分区为空
partitions assigned: []
“测试”组中可能已经有其他一些消费者实例,并且正在处理它们。在这种情况下,请尝试更改组的名称。