1. 问题场景复现
不同类型的消息发到同一个Topic中,设置多个消费者组,为每个消费者组打一个标记。每一种消费者组只能消费对应的消息类型。这样做的好处是避免设置多个Topic,简化代码开发的同时性能损耗小。问题出现在消费端,由于多个消费者组对象随着项目初始化而初始化,导致了你的断点不一定能准确打在对应的消费者上,出现的问题就是进不去断点。
2. 解决思路
你在生产者端发送一条消息进入到kafka消息队列,重点来了,被@KafkaListener修饰的消费者代码肯定能捕获这一条消息,但是这条消息的类型标识和这个消费者组的类型标识不一定相同,代码逻辑是如果不相同要舍弃这条消息。所以,让断点生效有一个折中的方式,直接在被@KafkaListener修饰的代码中将消费者组的类型写固定。但是一定要记得调试完断点以后再改回来。