【发布时间】:2021-07-16 12:24:43
【问题描述】:
我在 c 中创建了 kafka 消费者并创建了一个具有 10 个分区的主题,当我尝试使用消费者读取数据时,它仅从 2 个分区读取,然后不再显示消息。 我尝试使用这两种方法,即订阅和分配,但它们都不起作用。 我应该如何将所有 10 个分区分配给单个消费者,这是将分区分配给消费者的正确方法吗? 我已经使用这个 repo https://github.com/edenhill/librdkafka/blob/master/examples/consumer.c 构建了自定义消费者 并用下面的行修改了上述 repo 的第 173 和 180 行,以便我可以从所有分区中使用。但是还是不行。
for(int partition_number = 0 ; partition_number < 10 ; partition_number) {
rd_kafka_topic_partition_list_add(sub_list,topic[i],partition_number);
}
rd_kafka_assign(consumer,sub_list);
【问题讨论】:
-
实际上我尝试使用 rd kafka_topic partition_list add() 添加分区,但这也只是从 2 个分区而不是从全部 10 个分区中读取。
-
@Suraj 请edit您的问题添加澄清或要求的信息。不要为此目的使用 cmets。根据对代码的模糊描述,很难回答您的问题。您应该以minimal reproducible example 的形式向问题中添加一些示例代码。
-
十个分区都有数据吗?
-
是的数据在所有10个分区中
标签: c apache-kafka kafka-consumer-api librdkafka