如何使用控制台生产者在Kafka 0.11中产生带有标头的消息?

cbb*_*cbb 2 apache-kafka

如何使用控制台生产者在Kafka 0.11中产生带有标头的消息?

我在Kafka文档中找不到关于此的任何描述。

小智 7

您还可以使用它kcat来生成带标题的消息。

kcat -P -b localhost:9092 -H "facilityCountryCode=US" -H "facilityNum=32619" \
-t test.topic.to.mq testkafkaproducerfile.json
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看 github 页面:https ://github.com/edenhill/kcat


Mic*_*son 5

使用kafka-console-producer.sh工具(ConsoleProducer.scala)无法产生带有标题的消息。

您需要编写自己的小型应用程序。Headers在创建时传入ProducerRecord。例如:

public static void main(String[] args) throws Exception {
    Properties producerConfig = new Properties();
    producerConfig.load(new FileInputStream("producer.properties"));

    KafkaProducer<String, String> producer = new KafkaProducer<>(producerConfig);

    List<Header> headers = Arrays.asList(new RecordHeader("header_key", "header_value".getBytes()));
    ProducerRecord<String, String> record = new ProducerRecord<>("topic", 0, "key", "value", headers);
    Future<RecordMetadata> future = producer.send(record);
    future.get();

    producer.close();
}
Run Code Online (Sandbox Code Playgroud)