Kafka 多个生产者到特定的同一分区

Kafka multiple producers to specific same partition

使用 spring kafka 模板,我有 2 个不同的生产者,它们总是以相同的形式向主题发送具有相同密钥的不同消息:

生产者 1: 发送密钥:1 消息:abc 分区 0

生产者 2: 发送密钥:2 消息:def

我有 3 个分区,所有消息都根据消息密钥发送到同一个分区。

现在,我需要确定,根据某些属性,特定消息将转到特定分区,以便能够管理系统中的某些优先级。

问题是生产者 2 无法知道生产者 1 选择了哪个分区。

Kafka 确保来自不同生产者的消息使用相同的密钥发送到相同的分区。但是从生产者1分配分区时,生产者2将具有相同密钥的消息发送到不同的分区。

我看过有关这方面的信息,但是 none 生产者选择要使用的分区。

kafka 不应该继续为消息分配相同的分区,即使生产者选择了它将使用的分区吗?

这个 post 的回答可能会帮助您了解您面临的问题。 实质上

/** * The default partitioning strategy: * *

  • If a partition is specified in the record, use it *
  • If no partition is specified but a key is present choose a partition based on a hash of the key *
  • If no partition or key is present choose a partition in a round-robin fashion */