E0135 class "RdKafka::Consumer" 没有成员 "subscribe" coumser_delay
时间: 2023-10-08 10:11:12 浏览: 207
这个错误可能是由于您使用的RdKafka版本较旧导致的,因为在较新版本的RdKafka中,"subscribe"方法已经被添加到"RdKafka::KafkaConsumer"类中。
您可以尝试更新RdKafka版本,或者使用"assign"方法替换"subscribe"方法来手动分配分区。
示例代码:
```cpp
RdKafka::KafkaConsumer *consumer = RdKafka::KafkaConsumer::create(conf, errstr);
if (!consumer) {
// 处理创建失败的情况
}
std::vector<std::string> topics = {"topic1", "topic2"};
std::vector<RdKafka::TopicPartition*> partitions;
for (const auto& topic : topics) {
partitions.push_back(RdKafka::TopicPartition::create(topic, RdKafka::Topic::PARTITION_UA, RdKafka::Topic::OFFSET_BEGINNING));
}
RdKafka::ErrorCode err = consumer->assign(partitions);
if (err != RdKafka::ERR_NO_ERROR) {
// 处理分配分区失败的情况
}
```
这段代码将分配"topic1"和"topic2"的所有分区。您可以根据需要修改分区偏移量,也可以手动分配特定的分区。
阅读全文