Spring boot 如何在ProducerRecord中设置kafka消息键

Spring boot 如何在ProducerRecord中设置kafka消息键,spring-boot,apache-kafka,spring-kafka,Spring Boot,Apache Kafka,Spring Kafka,目前,我正在使用org.springframework.kafka.core.KafkaTemplate发布关于标题主题的avro消息 @Override public ListenableFuture<SendResult<K, V>> send(Message<?> message) { ProducerRecord<?, ?> producerRecord = this.messageConverter.fromMessage(mes

目前,我正在使用org.springframework.kafka.core.KafkaTemplate发布关于标题主题的avro消息

@Override
public ListenableFuture<SendResult<K, V>> send(Message<?> message) {
    ProducerRecord<?, ?> producerRecord = this.messageConverter.fromMessage(message, this.defaultTopic);
    if (!producerRecord.headers().iterator().hasNext()) { // possibly no Jackson
        byte[] correlationId = message.getHeaders().get(KafkaHeaders.CORRELATION_ID, byte[].class);
        if (correlationId != null) {
            producerRecord.headers().add(KafkaHeaders.CORRELATION_ID, correlationId);
        }
    }
    return doSend((ProducerRecord<K, V>) producerRecord);
}
@覆盖
public ListenableFuture发送(消息){
ProducerRecord ProducerRecord=this.messageConverter.fromMessage(message,this.defaultTopic);
如果(!producerRecord.headers().iterator().hasNext()){//可能没有
byte[]correlationId=message.getHeaders().get(KafkaHeaders.CORRELATION_ID,byte[].class);
if(correlationId!=null){
producerRecord.headers().add(KafkaHeaders.CORRELATION_ID,correlationId);
}
}
返回doSend((生产记录)生产记录);
}

在消息中,我们可以设置值和头,但不能设置键。有没有办法在页眉中输入关键字?如果有,请告诉我密钥的标题名好吗?是否有使用KafkaTemplate发送键、值和标题的方法?您必须在
产品记录上设置标题,例如:

RecordHeader yourHeader = new RecordHeader("yourHeaderName", "yourValue".toByteArray())
record.headers().add(recordHeaderKafkaMessageKey)

编辑:误读要求,抱歉。消息键有一个已定义的kafka头,它是
KafkaHeaders。消息键

实际上我需要将消息键与头加上值一起填充。我知道我可以设置标题,但发送标题不是问题。我无法用message发送消息密钥对不起,应该仔细阅读您的问题。是否
KafkaHeaders.MESSAGE\u键
help?
messageConverter.fromMessage
尚未设置ProducerRecord键?这个.messageConverter是什么类型的对象?