Apache kafka Kafka将多个生产者指定给同一分区

Apache kafka Kafka将多个生产者指定给同一分区,apache-kafka,kafka-producer-api,spring-kafka,Apache Kafka,Kafka Producer Api,Spring Kafka,使用spring kafka模板,我有两个不同的制作人,他们使用相同的密钥向主题发送不同的消息,并且总是以相同的形式发送: 生产者1:发送密钥:1消息:abc分区0 生产者2:发送密钥:2消息:def 我有3个分区,所有消息都根据消息键发送到同一个分区 现在,我需要确保,根据一些属性,特定的消息将转到特定的分区,以便能够管理系统中的某些优先级 问题是生产者2无法知道生产者1选择了哪个分区 Kafka确保使用同一密钥发送到的来自不同生产者的消息将进入同一分区。但是当从生产者1分配分区时,生产者2将

使用spring kafka模板,我有两个不同的制作人,他们使用相同的密钥向主题发送不同的消息,并且总是以相同的形式发送:

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

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

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

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

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

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

我已经看到了这方面的信息,但是没有一个是生产者选择将使用的分区


即使producer One选择了它将使用的分区,kafka是否应该继续为消息分配相同的分区?

这篇文章的答案可能有助于您理解您所面临的问题。 实质上

/** *默认分区策略: * *
  • 如果在记录中指定了分区,请使用它 *
  • 如果未指定分区但存在密钥,请根据密钥的哈希值选择分区 *
  • 如果没有分区或键,则以循环方式选择分区 */


    嗯,所以制作人负责选择分区。而不是服务器本身。谢谢