c++ 消费 Kafka
时间: 2024-08-16 07:09:11 浏览: 104
在 C++ 中消费 Apache Kafka 主要有以下几个步骤:
1. 引入库:首先需要安装 Kafka 的 C/C++ 库,如 librdkafka 或 kafka-cpp。你可以通过包管理器(如 apt-get 或 Homebrew)安装。
```cpp
#include <librdkafka/rdkafka.h>
```
2. 创建配置:创建 `rdkafka::Conf` 对象,并设置必要的配置项,如 brokers 的地址、消费者组 ID 等。
```cpp
rdkafka::Conf *conf = new rdkafka::Conf();
conf->set("bootstrap.servers", "localhost:9092");
conf->set("group.id", "my_group");
```
3. 创建 consumer:使用配置创建 `rdkafka::Consumer` 实例。
```cpp
rdkafka::Consumer *consumer = new rdkafka::Consumer(conf);
```
4. 订阅主题:调用 `subscribe()` 函数订阅想要接收消息的主题。
```cpp
std::vector<std::string> topics = {"my_topic"};
consumer->subscribe(topics);
```
5. 接收消息:使用轮询循环 (`rdkafka:: poll()`),当有新的消息可用时处理它们。
```cpp
while (true) {
rdkafka::Message *msg;
if ((msg = consumer->fetch(0)) == NULL) continue; // 等待消息
std::string topic = msg->topic();
std::string data = msg->payload();
// 处理接收到的消息...
delete msg;
}
```
6. 错误处理和清理:记得在适当的时候关闭和清理资源,例如在程序退出时删除 consumer 和配置对象。
```cpp
delete consumer;
delete conf;
```
阅读全文