linux下rdkafka编译,Linux下librdkafka编译安装使用学习

Kafka分为服务端和客户端,服务端集群一般称为brokers,客户端分为生产者(producer)和消费者(consumer)。

开发者通常用客户端从kafka生产消息或消费消息,不同的语言使用不同的客户端,具体信息参见这个页面:

https://cwiki.apache.org/confluence/display/KAFKA/Clients

我使用的是C++开发的客户端:librdkafka

此处获取各个Realease版本:

https://github.com/edenhill/librdkafka/releases

下载一个 librdkafka-0.11.6.tar.gz 包,到开发环境上, 放到自己使用的目录下。

1、解压

tar -xzvf librdkafka-0.11.6.tar.gz

2、进入解压后的目录,指定安装环境。我这里只是指定了安装目录。

cd librdkafka-0.11.6

./configure --prefix=/home/luobg/study/librdkafka

这里只是用 --prefix选项指定了安装目录,目录为/home/luobg/study/librdkafka,也可以不指定目录,默认安装路径为/usr/local/librdkafka。

3、make编译

make -j4

make 后面的 -j4 是

开启四个线程同时编译的意思,这里的-jN这个数字N看各自的开发环境而定,一般4个线程是稳妥的。

4、安装

sudo make install

如果一切安装顺利的话,最后可以进入librdkafka-0.11.6的目录下,查看librdkafka支持的一些特性

./rdkafka_example -X builtin.features

我的结果为:

builtin.features = gzip,snappy,ssl,sasl,regex,lz4,sasl_plain,sasl_scram,plugins

像sasl,sasl_plaintext是连接带鉴权的kafka需要用到的。如果需要这些特性那么在编译librdkafka之前就要做相应的依赖库安装。

关于librdkafka的使用。

编写C++程序就是包含 rdkafkacpp.h 头文件,在安装目录的include目录下,编译自己的程序的时候链C++的库 -lrdkafka++, 还要链接线程库 -lpthread

编写C程序就是包含 rdkafka.h 头文件,编译自己的程序的时候就是链接C的库 -lrdkafka, 以及线程库 -lpthread

具体使用代码,留在其他篇目记录。

另外,librdkafka需要的gcc版本是比较高的,应该是越高越好,不然会在编译过程中出现奇怪的报错问题。

如果不是安装到默认路径下的话,而且你也不是root用户,那么就需要对当前用户家目录下的 .bash_profile 进行配置,方便使用。

1、返回当前用户家目录

cd ~

2、编辑.bash_profile ,#这里,如果没有这个文件就创建

vim .bash_profile

这里编辑运行时库路径LD_LIBRARY_PATH,,以及编译时链接库路径LIBRARY_PATH,头文件包含路径。一定不要忘记最后的:$LD_LIBRARY_PATH以及:$LIBRARY_PATH,其中冒号 ":"标识变量之间的隔开,类比Windows下的分号";"。/home/luobg/study/librdkafka/lib 是之前librdkafka的安装下的lib目录.

#运行时库路径

export LD_LIBRARY_PATH=/home/luobg/study/librdkafka/lib:$LD_LIBRARY_PATH

#编译时链接库路径

export LIBRARY=/home/luobg/study/librdkafka/lib:$LIBRARY_PATH

#C++头文件包含路径

export CPLUS_INCLUDE_PATH=/home/luobg/study/librdkafka/include:$CPLUS_INCLUDE_PATH

#C头文件包含路径

export C_INCLUDE_PATH=/home/luobg/study/librdkafka/include:$C_INCLUDE_PATH

编辑完成保存退出记得 source ./.bash_profile 生效。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值