![](/img/trans.png)
[英]How to consume messages from kafka topics using protocol buffers (protobuf) by spring cloud stream binder kafka streams dependency?
[英]Consuming Kafka messages with its key in batches using Spring Cloud Stream Kafka Binder
批量消费时是否有可能获得kafka消息的密钥?
当使用Message<String>
作为我的消费者 function 的输入时,我设法访问了消息键,但这仅适用于非批处理模式:
@SpringBootApplication
class KafkaSink {
private val log = logger()
@Bean
fun sink() : Consumer<Message<String>> {
return Consumer {
log.info("key: ${it.headers[KafkaHeaders.RECEIVED_MESSAGE_KEY]} value: ${it.payload}")
}
}
}
设置属性spring.cloud.stream.binding.sink.consumer.batch-mode=true
时,我只能使用List<String>
作为消费者的参数,但不能使用List<Message<String>>
使用Message<List<String>>
; 然后, KafkaHeaders.RECEIVED_MESSAGE_KEY
是一个List<?>
,其顺序与有效负载相同 - 所有其他标头都相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.