在 Kafka 生产者中指定空分区

Specifying a null partition in a Kafka Producer

Kafka ProducerRecord api 有几个不同的构造函数。

我希望能够指定主题、时间戳、键和值;但不是分区。

我能看到的最接近的选项如下,但它迫使我指定分区号:

public ProducerRecord(String topic, Integer partition, Long timestamp, K key, V value)

是否可以只把null放在那里,然后使用基于键的标准分区算法;或者这会产生不需要的副作用吗?

Kafka Documentation 状态:

If a valid partition number is specified that partition will be used when sending the record. If no partition is specified but a key is present a partition will be chosen using a hash of the key. If neither key nor partition is present a partition will be assigned in a round-robin fashion.

不允许指定分区的构造函数也在内部将 null 传递给该参数;所以使用 null 会给出预期的行为