C++如何实现通过Kafka接收消息
时间: 2023-05-11 16:06:05 浏览: 226
C 可以使用 Kafka 的 C 客户端库来实现通过 Kafka 接收消息。具体步骤如下:
1. 安装 Kafka C 客户端库,例如 librdkafka。
2. 在代码中引入 Kafka C 客户端库的头文件。
3. 创建 Kafka 消费者对象,并设置相关参数,例如 Kafka 集群地址、消费者组 ID、消费者订阅的主题等。
4. 调用 Kafka 消费者对象的消费函数,例如 rd_kafka_consumer_poll(),来接收 Kafka 消息。
5. 处理接收到的 Kafka 消息,例如解析消息内容、存储消息等。
6. 释放 Kafka 消费者对象和相关资源。
以下是一个简单的示例代码:
```
#include <librdkafka/rdkafka.h>
int main() {
rd_kafka_t *consumer = NULL;
rd_kafka_conf_t *conf = rd_kafka_conf_new();
rd_kafka_conf_set(conf, "bootstrap.servers", "kafka1:9092,kafka2:9092", NULL, 0);
rd_kafka_conf_set(conf, "group.id", "my-group", NULL, 0);
rd_kafka_t *consumer = rd_kafka_new(RD_KAFKA_CONSUMER, conf, NULL, 0);
rd_kafka_subscribe(consumer, "my-topic");
while (1) {
rd_kafka_message_t *msg = rd_kafka_consumer_poll(consumer, 1000);
if (msg) {
printf("Received message: %.*s\n", (int)msg->len, (char *)msg->payload);
rd_kafka_message_destroy(msg);
}
}
rd_kafka_unsubscribe(consumer);
rd_kafka_consumer_close(consumer);
rd_kafka_destroy(consumer);
return 0;
}
```
阅读全文