Apache kafka 卡夫卡如何为密钥选择分区?
假设一个主题的分区数是固定的。假设我在发布消息时提供了一个包含字节数组的键。卡夫卡将把密钥映射到主题分区0,1,2,3,…N-1上 我想做一个函数,做同样的事情:给定N,键返回与Kafka相同的分区号 这只是伪代码%N吗Apache kafka 卡夫卡如何为密钥选择分区?,apache-kafka,Apache Kafka,假设一个主题的分区数是固定的。假设我在发布消息时提供了一个包含字节数组的键。卡夫卡将把密钥映射到主题分区0,1,2,3,…N-1上 我想做一个函数,做同样的事情:给定N,键返回与Kafka相同的分区号 这只是伪代码%N吗 据我所知,卡夫卡根据散列值对密钥和分区进行散列。下面是一个有用的图表和一个示例 Utils.absjava.util.Arrays.hashCodekey.asInstanceOf[Array[Byte]%numPartitions 刚刚找到另一个分区的好例子 据我所知,Kaf
据我所知,卡夫卡根据散列值对密钥和分区进行散列。下面是一个有用的图表和一个示例 Utils.absjava.util.Arrays.hashCodekey.asInstanceOf[Array[Byte]%numPartitions 刚刚找到另一个分区的好例子
据我所知,Kafka根据散列值对键和分区进行散列 Utils.absjava.util.Arrays.hashCodekey.asInstanceOf[Array[Byte]%numPartitions 刚刚找到另一个分区的好例子 DefaultPartitioner使用Murruld3函数为具有非空键的消息计算分区 您可以只提取算法并添加到代码中: 导入org.apache.kafka.common.utils.utils; Utils.toPositiveUtils.2keybytes%numPartitions; 第二种选择是只使用DefaultPartitioner: DefaultPartitioner partitioner=新的DefaultPartitioner; int partition=partitioner.partition???、?、?、?、?、?、?、?、???; DefaultPartitioner使用Murruld3函数为具有非空键的消息计算分区 您可以只提取算法并添加到代码中: 导入org.apache.kafka.common.utils.utils; Utils.toPositiveUtils.2keybytes%numPartitions; 第二种选择是只使用DefaultPartitioner: DefaultPartitioner partitioner=新的DefaultPartitioner; int partition=partitioner.partition???、?、?、?、?、?、?、?、???;
hashCode在JVM实现上不一致,因此这是不正确的function@cricket_007啊,我不知道。谢谢你的帮助。哈希代码在JVM实现中不一致,所以这不是正确的function@cricket_007啊,我不知道。谢谢你的帮助。谢谢,这正是我需要的。import org.apache.kafka.clients.producer.internals.DefaultPartitionerHanks,这正是我所需要的。import org.apache.kafka.clients.producer.internals.DefaultPartitioner