Как читать Kafka Message Key из облачных потоков Spring? - PullRequest
0 голосов
/ 13 февраля 2019

enter code here Я использую потоки весенних облаков для получения сообщения от Kafka.

Можно ли прочитать ключ сообщения Kafka из кода?

У меня есть тема Кафки, в которой обычно есть 2 типа сообщений.Требуемое действие зависит от ключа сообщения.Я вижу, что у весенней документации есть только следующее, чтобы прочитать сообщение.Здесь мне нужно указать фактическое отображение сообщения (класс Greetings здесь).Однако мне нужен способ, с помощью которого я могу прочитать ключ сообщения и определить десериализуемый Pojo

открытый класс GreetingsListener {

@StreamListener(GreetingsProcessor.INPUT)
public void handleGreetings(@Payload Greetings request) {

}

}

1 Ответ

0 голосов
/ 13 февраля 2019

Вы можете попробовать что-то вроде этого:

@StreamListener(GreetingsProcessor.INPUT)
public void handleGreetings(@Payload Greetings request, @Header(KafkaHeaders.RECEIVED_MESSAGE_KEY)String  key) {

}

Вам необходимо предоставить правильный десериализатор для ключа.Например, если ваш ключ - строка, вы можете указать:

spring.cloud.stream.kafka.binder.configuration.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
...