Невозможно получить правильные полученные topi c, когда сообщение обрабатывается @KafkaHandler (isDefault = true) - PullRequest
0 голосов
/ 07 мая 2020

Я хочу получить topi c для сообщения, полезная нагрузка которого не может быть распознана другим 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 ( ), Я не могу получить правильный topi c в unknownObjectMethod (). Значение, которое я получаю для topi c с помощью приведенного выше кода, - это сама полезная нагрузка. Я не понимаю, почему это происходит. Посоветуйте, пожалуйста, как мне получить правильный topi c в unknownOnjectMethod ().

Спасибо!

1 Ответ

1 голос
/ 07 мая 2020

Это ошибка; в качестве обходного решения используйте

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

Я открыл для него проблему здесь .

...