如何将 flume 的键值消息发送给 kafka 生产者

How to send key, value messages with flume to a kafka producer

在控制台中,您添加生产者属性 --property "parse.key=true" --property "key.separator=:" 以将键值数据生成到 Kafka 中,但是如何使用 flume 执行此操作?我试着添加

a1.sinks.k1.producer.parse.key=true 
a1.sinks.k1.producer.key.separator=:

在 .conf 文件中但无济于事,kafka 将密钥视为字符串。

这些是 console-producer CLI 参数,而不是 Kafka 的 ProducerConfig 属性(传递给 Flume)

密钥始终是字符串,但您通过 Flume 记录的 headers 传递它

https://github.com/apache/flume/blob/trunk/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSink.java#L193