kafka代码实例C++
时间: 2024-04-24 17:19:48 浏览: 11
当然,我可以给你介绍一下Kafka在C++中的代码实例Kafka是一个分布式流处理平台,它使用高吞吐量、低延迟的方式来处理大规模的数据流。在C++中使用Kafka,你可以使用librdkafka库来进行操作。
下面是一个简单的Kafka C++代码实例,用于生产者发送消息到Kafka集群:
```cpp
#include <iostream>
#include <string>
#include <librdkafka/rdkafkacpp.h>
int main() {
std::string brokers = "localhost:9092"; // Kafka集群的地址
std::string topic = "test_topic"; // Kafka主题
// 创建配置对象
RdKafka::Conf *conf = RdKafka::Conf::create(RdKafka::Conf::CONF_GLOBAL);
// 设置Kafka集群的地址
std::string errstr;
if (conf->set("bootstrap.servers", brokers, errstr) != RdKafka::Conf::CONF_OK) {
std::cerr << "Failed to set broker list: " << errstr << std::endl;
delete conf;
return 1;
}
// 创建生产者对象
RdKafka::Producer *producer = RdKafka::Producer::create(conf, errstr);
if (!producer) {
std::cerr << "Failed to create producer: " << errstr << std::endl;
delete conf;
return 1;
}
// 创建消息对象
std::string message = "Hello, Kafka!";
RdKafka::ProducerRecord *record = new RdKafka::ProducerRecord(topic, RdKafka::Topic::PARTITION_UA, RdKafka::ProducerRecord::COPY, &message, message.size());
// 发送消息
RdKafka::ErrorCode resp = producer->produce(record);
if (resp != RdKafka::ERR_NO_ERROR) {
std::cerr << "Failed to produce message: " << RdKafka::err2str(resp) << std::endl;
delete record;
delete producer;
delete conf;
return 1;
}
// 等待消息发送完成
producer->flush(1000);
// 释放资源
delete record;
delete producer;
delete conf;
return 0;
}
```
这个代码示例演示了如何使用librdkafka库创建一个生产者,并发送一条消息到指定的Kafka主题。你可以根据自己的需求进行修改和扩展。