使用c++写入kafka的代码
时间: 2024-10-09 13:13:15 浏览: 40
kafka definitive guide
在C++中,要写入Kafka,通常会使用像Confluent C++客户端这样的第三方库。以下是一个简单的示例,展示如何使用Confluent C++ Kafka Producer API发送消息:
```cpp
#include <iostream>
#include <confluent_kafka/producer.h>
#include <string>
// 初始化配置
confluent::common::Config config;
config.set("bootstrap.servers", "localhost:9092"); // Kafka服务器地址
config.set("key.serializer", "PLAINTEXT");
config.set("value.serializer", "PLAINTEXT");
// 创建Producer实例
confluent::common::Ptr<confluent::kafka::Producer> producer(confluent::kafka::NewProducer(config));
std::string topic = "my-topic"; // 想要发布的主题
std::string key = "message-key";
std::string value = "Hello Kafka from C++";
try {
// 准备生产的消息
confluent::common::Future<confluent::kafka::ProducerResult<int8_t>> result = producer->produce(
topic,
key.c_str(),
static_cast<int32_t>(key.size()),
value.c_str(),
static_cast<int32_t>(value.size()));
if (result->is_success()) {
std::cout << "Produced message to " << topic << " with key " << key << std::endl;
} else {
std::cerr << "Failed to produce message: " << result->error() << std::endl;
}
} catch (const confluent::kafka::Error& e) {
std::cerr << "Error producing message: " << e.what() << std::endl;
}
// 关闭Producer
producer->close();
```
这个例子中,我们首先设置了一个Kafka配置,然后创建了一个Producer实例。接着,我们准备并发送一条消息到指定的主题。最后关闭Producer。记得在实际项目中替换"localhost:9092"为你的实际Kafka集群地址。
阅读全文