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
*/
使用 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 */