如何从spring cloud streams读取Kafka消息密钥?

dauxcl2d  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(358)

enter code here 我正在使用springcloudstreams来消费来自kafka的消息。
是否可以从代码中读取Kafka信息密钥?
我有一个Kafka主题,通常有两种类型的信息。要采取的操作因消息键而异。我看到spring文档中只有以下内容可以阅读该消息。在这里,我需要指定消息的实际Map(这里是问候语类)。但是,我需要一种方法来读取消息键并确定可反序列化的pojo
公务舱迎宾员{

  1. @StreamListener(GreetingsProcessor.INPUT)
  2. public void handleGreetings(@Payload Greetings request) {
  3. }

}

c86crjj0

c86crjj01#

您可以尝试以下方法:

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

您需要为密钥提供适当的反序列化程序。例如,如果密钥是字符串,则可以提供:

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

相关问题