enter code here
我正在使用春季云流来吸收来自Kafka的消息。
是否可以从代码中读取Kafka消息密钥?
我有一个Kafka主题,通常有两种消息类型。根据消息键的不同,要采取的措施也有所不同。我看到spring文档只有以下内容才能读取该消息。在这里,我需要指定消息的实际映射(此处为greetings类)。但是,我需要一种可以读取消息密钥并确定可反序列化的Pojo的方法
公共类GreetingsListener {
@StreamListener(GreetingsProcessor.INPUT)
public void handleGreetings(@Payload Greetings request) {
}
}
答案 0 :(得分:0)
您可以尝试以下操作:
@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