繁体   English   中英

RD_KAFKA_PARTITION_UA 在 librdkafka 中是如何工作的?

[英]How does RD_KAFKA_PARTITION_UA work in librdkafka?

我在 php 有一个生产者,它发布到队列。 我正在使用php-rdkafka库。

以下是代码:

        $conf->set('log_level', LOG_DEBUG);
        $conf->set('debug', 'all');
        $rk = new RdKafka\Producer($conf);
        $rk->addBrokers("34.93.118.165:9092");
        $topic = $rk->newTopic("download_first");
        $topic->produce(RD_KAFKA_PARTITION_UA, 0, utf8_encode($message));
        $rk->flush(100);

我有 2 个 python 消费者从队列中消费。

该主题有 10 个分区。 大多数情况下,当一条新消息产生时,它会进入与以前相同的分区,该分区正被单个消费者消费,因此其他消费者处于空闲状态。

是否有任何其他分区器分配我可以在生成消息时使用的东西?

https://github.com/arnaud-lb/php-rdkafka 在下面使用 librdkafka,它是一个基于 C 的 Kafka 库。

根据文档RD_KAFKA_PARTITION_UA 用于使用automatic partitioning using the topic's partitioner function或者您可以传递确切的分区号而不是 RD_KAFKA_PARTITION_UA 来强制分区。

或者你调用$conf->setPartitioner(RD_KAFKA_MSG_PARTITIONER_RANDOM); 用于启用随机分区器 function。 这是setPartitioner的可能常量列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM