【问题标题】:Specifying a null partition in a Kafka Producer在 Kafka Producer 中指定空分区
【发布时间】:2022-01-15 03:07:07
【问题描述】:

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

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

我能看到的最接近的选项如下,但它强制我指定一个分区号:

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

是否可以将null 放在那里,然后使用基于密钥的标准分区算法;还是会产生不必要的副作用?

【问题讨论】:

  • 当你尝试给 null 时会发生什么?

标签: java apache-kafka kafka-producer-api


【解决方案1】:

Kafka Documentation 声明:

如果指定了有效的分区号,则在发送记录时将使用该分区。如果未指定分区但存在键,则将使用键的散列选择分区。如果既不存在键也不存在分区,则将以循环方式分配分区。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2020-12-27
    • 2020-01-27
    • 1970-01-01
    • 2021-10-27
    • 2018-12-15
    相关资源
    最近更新 更多