kafka c++ 接入实例
时间: 2023-07-12 10:34:06 浏览: 70
以下是使用C++接入Kafka的一个简单示例:
```cpp
#include <iostream>
#include <librdkafka/rdkafkacpp.h>
int main() {
std::string brokers = "localhost:9092"; // Kafka brokers地址
std::string topic_name = "test_topic"; // Kafka主题名
// 创建Kafka生产者配置对象
RdKafka::Conf *conf = RdKafka::Conf::create(RdKafka::Conf::CONF_GLOBAL);
std::string errstr;
// 设置broker地址
if (conf->set("bootstrap.servers", brokers, errstr) != RdKafka::Conf::CONF_OK) {
std::cerr << "Failed to set broker address: " << errstr << std::endl;
return 1;
}
// 创建Kafka生产者对象
RdKafka::Producer *producer = RdKafka::Producer::create(conf, errstr);
if (!producer) {
std::cerr << "Failed to create producer: " << errstr << std::endl;
return 1;
}
// 创建Kafka消息对象
RdKafka::Topic *topic = RdKafka::Topic::create(producer, topic_name, NULL, errstr);
if (!topic) {
std::cerr << "Failed to create topic: " << errstr << std::endl;
return 1;
}
// 发送消息
std::string message = "Hello, Kafka!";
RdKafka::ErrorCode resp = producer->produce(topic, RdKafka::Topic::PARTITION_UA, RdKafka::Producer::RK_MSG_COPY, const_cast<char *>(message.c_str()), message.size(), NULL, NULL);
if (resp != RdKafka::ERR_NO_ERROR) {
std::cerr << "Failed to produce message: " << RdKafka::err2str(resp) << std::endl;
return 1;
}
// 关闭资源
delete topic;
delete producer;
delete conf;
return 0;
}
```
注意:该示例仅用于演示C++接入Kafka的基本流程,实际应用中需要根据实际情况进行配置和细节处理。