kafka就不介绍了, 可以参考kafka的c/c++高性能客户端librdkafka简介,下面说下librdkafka的编译:
下载地址:https://github.com/edenhill/librdkafka,下载zip包解压。
解压后找到目录下的win32目录, 里面是vs工程。
这里还不能编译,因为缺少openssl,需要编译openssl。
下载ActivePerl:http://www.activestate.com/activeperl/注意64位和32位, 如果你要编译64位的选择64。
下载后直接安装即可,新版程序自动加上了环境变量,无需添加。
下载openssl
我用的是openssl-1.0.2l版本,解压到F盘kafka目录。
安装步骤:
(可以参照openssl目录下的INSTALL.W64)
1.打开命令行
进入openssl源码目录。
cd f:/kafka/openssl-1.0.2l
依次执行:
> perl Configure VC-WIN64A
> ms\do_win64a
> nmake -f ms\ntdll.mak
> cd out32dll
> ..\ms\test
在out32dll目录下:包括可执行文件、两个out32dll和两个inc32夹,里面包含: libeay32.dll, libeay32.lib, ssleay32.dll,ssleay32.lib和头文件。
将上面的文件拷贝到librdkafka的解压目录,dll放在librdkafka的输出目录,其他放在任意位置,配置工程的时候配置进去就行了。
回到librdkafka工程(vs2013 打开):
在additionalinclude directories加上
"F:\kafka\openssl-1.0.2l\inc32"
在additionallibrary directories加上
"F:\kafka\openssl-1.0.2l\out32dll"
开始编译:
1.这里会出现ibeay32MT.lib等找不到,这是因为我们编译的openssl并未使用这个名称,这里只需在连接器的输入里面想连接的lib后面的MT干掉即可。
2.会出现U32 size_t不识别的问题, 只需要修改为对应的类型即可,如u32 定义为typedef unsigned u32, 改为直接使用unsigned即可
3.修改C++->运行库为多线程,debug为MTD ,release为MT,
然后全部生成,会出现一个工程跳过,不用管,实际使用不需要。
然后就可以开始封装了:
#pragma once
#include <iostream>
#include <string>
#include <cstdlib>
#include <cstdio>
#include <csignal>
#include <cstring>
#include <list>
#include "rdkafkacpp.h"
#include <vector>
#include<fstream>
using std::string;
using std::list;
using std::cout;
using std::endl;
using std::vector;
using std::fstream;
class KafkaProducerCallBack : public RdKafka::DeliveryReportCb {
public:
void dr_cb(RdKafka::Message &message) {
std::cout << "Message delivery for (" << message.len() << " bytes): " <<
message.errstr() << std::endl;
if (message.key())
std:

本文详述了在Windows上编译librdkafka库,包括下载源码、配置环境(如依赖的openssl)、解决编译问题等步骤。接着展示了如何使用librdkafka实现Kafka的C++生产者和消费者客户端,提供了初始化、发送消息、接收消息等关键代码。此外,还给出了示例代码和错误处理。最后,提供了完整的Kafka服务部署和使用的参考链接。
最低0.47元/天 解锁文章
1099

被折叠的 条评论
为什么被折叠?



