代码之家  ›  专栏  ›  技术社区  ›  BARATH

Kafka主题分区中的键和值avro消息分布

  •  0
  • BARATH  · 技术社区  · 6 年前

    我们使用6个分区的kafka主题,来自生产者的传入消息有4个key1、key2、key3、key4及其对应的值,我看到这些值只分布在3个分区中,其余的分区仍然是空的。

    1. 消息的分布是否基于密钥的散列值?
    2. 假设我的Key1的散列值是XXXX,它在总共6个分区中属于哪个分区?
    3. 我使用kafka connect hdfs connector将数据写入hdfs,我知道它使用密钥的散列值将消息分发到分区,这与kafka分发消息的方式相同吗?
    1 回复  |  直到 6 年前
        1
  •  0
  •   Bitswazsky    6 年前
    • 是的,消息在分区上的分布是由该主题上的消息键模总分区计数的散列决定的。例如,如果您要发送消息 带钥匙组件 ,到某个主题 我的主题 已经 第页 然后是分区 转到分区 .hashcode()% 第页 在里面 我的主题 是的。我想这也回答了你的第二个问题。在您的例子中,两个结果值被映射到同一个分区。

    • 如果我的内存正确地为我服务,那么Kafka hdfs连接器应该负责从Kafka主题中消费并将其放入Hadoop hdfs中你不必担心那里的分区,它是抽象出来的。