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の後ろの-j 4は
4つのスレッドを同時にコンパイルするという意味で、ここの-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が有効になります.