如何在kafka partitioner中读取headers

How to read headers in kafka partitioner

我想扩展 Kafka DefaultPartitioner 来制作一个自定义分区。但是,我找不到访问消息 headers 的方法,因为分区应该基于那里存在的值。

编辑 1: 任务是选择一个分区,而不是基于键,而是基于 header.

中包含的另一个整数

您无法访问自定义分区程序 class 中的 header。但也许您可以根据 header 值手动创建 ProducerRecord。

ProducerRecord 有许多重载的构造函数定义。其中一些有分区参数。在那里您可以指定分区号,它表示您的 ProducerRecord 将进入哪个分区。

例如 ProducerRecord<String,String> rec = new ProducerRecord(topic, partitionNo, key, value);

否则,您必须将特定的 header 值嵌入到键或值 object 中,然后在分区程序 class.

中访问它