gpt4 book ai didi

java - 为 kafka 编写我们自己的自定义分区器

转载 作者:行者123 更新时间:2023-12-03 23:57:44 25 4
gpt4 key购买 nike

我需要根据我们拥有的 key 编写自己的分区程序。看起来我们可以编写自己的自定义分区程序。

他们从 Kafka 主站点说

Producers publish data to the topics of their choice. The producer is responsible for choosing which record to assign to which partition within the topic. This can be done in a round-robin fashion simply to balance load or it can be done according to some semantic partition function (say based on some key in the record). More on the use of partitioning in a second!



就我而言,给定一个主题,我们将有 10 partitions为此,我们想使用这个公式来决定数据应该进入哪个分区。
partition = client_id % MOD 10

这里 client_id将是键,它总是数值,它总是长数据类型。我如何为 kafka 生产者编写我们自己的自定义分区器,它可以告诉我应该使用给 client_id 的分区.

我看到我们必须实现 Partitioner类并在 partition 中进行一些更改方法,但我不知道如何使用 keyBytes如果根据上述公式计算分区的变量。
@Override
public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes,
Cluster cluster) {
// TODO Auto-generated method stub
return 0;
}

我正在运行 Kafka 0.10.0.0 版本。

最佳答案

keyBytes 是用于分区的序列化 key 。您可以直接使用'key'(带有Object类型)进行分区。

关于java - 为 kafka 编写我们自己的自定义分区器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40227776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com