当 @KafkaHandler(isDefault = true) 处理消息时无法获得正确的接收主题

Cannot get correct received topic when a message handled by @KafkaHandler(isDefault = true)

我想获取其他 KafkaHandler 无法识别负载的消息的主题。

@KafkaListener(id="group-0", topics={"topic-0","topic-1"})
public class MultiHandler {

@KafkaHandler
public void fooMethod(Foo foo) {}

@KafkaHandler 
public void barMethod(Bar bar) {}

@KafkaHandler(isDefault = true)
public void unknownObjectMethod(
  @Header(KafkaHeaders.RECEIVED_TOPIC) String topic,
  @Header(KafkaHeaders.RECEIVED_MESSAGE_KEY) String key,
  Object object) {}
}

我的问题是,如果有效载荷不能由 fooMethod() 或 barMethod() 处理,我就无法在 unknownObjectMethod() 中获得正确的主题。我通过上面的代码为主题获得的值是有效负载本身。我很困惑为什么会这样。请告知如何在 unknownOnjectMethod() 中获得正确的主题。

谢谢!

这是一个错误;作为解决方法,使用

@KafkaHandler(isDefault = true)
public void def(ConsumerRecord<?, ?> record) {
    ...
}

我为此开了一个问题 here