Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡如何为密钥选择分区?_Apache Kafka - Fatal编程技术网

Apache kafka 卡夫卡如何为密钥选择分区?

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

假设一个主题的分区数是固定的。假设我在发布消息时提供了一个包含字节数组的键。卡夫卡将把密钥映射到主题分区0,1,2,3,…N-1上

我想做一个函数,做同样的事情:给定N,键返回与Kafka相同的分区号

这只是伪代码%N吗


据我所知,卡夫卡根据散列值对密钥和分区进行散列。下面是一个有用的图表和一个示例

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