spring - KafkaListner 没有解析主题名称
问题描述
我正在研究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
但是当生产者在以下任何主题上发出事件时。消费者什么也没听。
有人可以帮我解决这个问题。
谢谢
解决方案
您可以在应用程序日志中使用 grep 短语“分配的分区”,该行将包含有关分配给您的应用程序的分区的信息。如果成功,应该是这样的:
partitions assigned: [test-env.demo.abc.v1.cqrs.customer-0],
如果分配的分区为空
partitions assigned: []
“测试”组中可能已经有一些其他消费者实例,并且它们正在处理消息。在这种情况下,请尝试更改组的名称。
推荐阅读
- sql-server - 如何在版本 12 或 13 上恢复 sql 备份文件版本 8?
- javascript - 如何使用另一个 json 数组过滤 json 数组?
- javascript - 如何使用三个js检查动态变化的布尔值
- html - 如何在textarea中从顶部边框边缘设置文本
- qt - 不推荐使用 QtCharts axisX()
- java - 使用@SpringBootTest时如何在测试类中自动装配bean
- javascript - 二维装箱算法
- hibernate - JPA 查询不返回与日志中的查询相同的结果
- reactjs - 如何启动多个调度
- c++ - 特征读取和写入 LLT 分解到文件