Pythonの合流のカフカクライアントはKerberos認証を構成しています

    カフカの認証モードは、一般的に次の三つがあります。

    バージョン0.9.0.0から1 SASL / GSSAPIをサポートするために始めました

    2. SASL / PLAINは、バージョン0.10.0.0からサポートするために始めました

    3. SASL / SCRAM-SHA-256およびSASL / SCRAM-SHA-512は、バージョン0.10.2.0から支えるようになりました

    ここで最初のSASL / GSSAPIのKerberos認証は、それが持っているJavaのネイティブサポートのための認証ですが、少しトラブルPython用の下方に配置されている特定の構成、合流カフカモジュールについて語っている根本的なlibrdkafkaに依存しますCはとてもオープンGSSAPIインターフェイスもlibrdkafkaでのサポートはコンパイル時間を必要とする言語ライブラリの多くは、この依存しているがあり、高性能カフカのクライアントライブラリを使用して製造しました

    librdkafka出典ます。https://github.com/edenhill/librdkafka

    あなたは、コンパイルする前に、必要な開発パッケージをインストールする必要があり、そうでない場合は、関連するインタフェースのコンパイラは行きません

    最初は、OpenSSLライブラリで、インストールするYUMを使用します:  yumを -y インストールのopensslのopenssl-develのを  、OpenSSLをコンパイルのみデフォルトPLAINをサポートし、これらの二つのメカニズムがスクラム、またGSSAPIメカニズムをサポートすることはできません依存、yumのインストールコマンドlibsasl2コンパイルする必要があります次のように:

yumを インストールサイラス-SASL-GSSAPIのcyrus-SASL-develのを

    Ubuntuのでコマンド:  apt-getをインストール libsasl2-モジュールGSSAPI-MIT-DEV-libsasl2は  SDK libsasl2をインストール

    その後、これは使用カフカのメッセージ圧縮するのに便利ですがzlibライブラリかどうかを確認し、通常のコマンドをインストール、存在する:  yumを インストールしたzlib-develのを  あなたが圧縮を有効zstd手動でコンパイルしてインストールすることができ、より高いパフォーマンスが必要な場合は、ここでは詳述しません、説話

    上記のライブラリが正常にインストールされている、あなたはlibrdkafkaソース、ソースパッケージをコンパイルするために開始することができ、ここで次のようにlibrdkafka-1.2.1.tar.gz、コマンドをインストールします。

#エキスパッケージ
 のtar -xvzf librdkafka- 1.2。1タール.gzを
CDのlibrdkafka - 1.2。1 
位コードをコンパイル / 設定
 します
作る インストール

    出力のlibsslによれば、上記のコマンドは./configureを実行した後に注意してください、次のようlibsasl2がオンされたか否かを確認します。

    

    ここでのlibsslとlibsasl2ショーOK説明SSLおよびSASL SCRAMとSASL GSSAPIまた、configureの段階を実行すると、デフォルトのインストール場所の接頭辞を指定していない、サポートされている今では/ usr / local、動的ライブラリの場所があるされます。/ usr / local / libの、あなたは、保存後に有効になり、そのような追加は/etc/ld.so.confのような動的ライブラリの接続リストにこのディレクトリを追加するにldconfigを実行する必要があります

    最後に、あなたがインストールされたバージョンは1.2.0である場合には、インストール後に以下のコードのテストを実行することができ、合流のカフカのPythonモジュールをコンパイルしてインストールすることができます。

1  は/ usr / binに/のenvのpython3!
2  #1 = UTF-8コード
3  から confluent_kafka インポートプロデューサ
 4  
5  DEF delivery_report(ERR、MSG):
 6      ""は、」配信結果を示すために生成された各メッセージのために一度呼び出される。
 7          によってトリガポーリング()またはフラッシュ()。""」
8      場合 ERRはありません ではないなし:
 9          プリント' メッセージの配信に失敗しました:{} ' .format(ERR))
 10      11          プリント'配信されたメッセージ{} [{}] ' .format(msg.topic()、msg.partition()))
 12  
13  なら __name__ == ' __main__ ' 14      = producer_conf {
 15          " bootstrap.servers "' 192.168。 0.3:9092,192.168.0.4:9092,192.168.0.5:9092 ' 16 " security.protocol "' sasl_plaintext ' 17 ' sasl.kerberos.service.name '' カフカ" 18 "                           sasl.kerberos.keytab '' /opt/user.keytab ' 19 ' sasl.kerberos.principal '' kafkauser ' 20     }
 21      P = プロデューサー(producer_conf)
 22 23     (0)p.poll
 24      p.produce (' testTopic '' コンフルエントカフカ試験' .encode(' UTF-8 ' )、
 25          コールバック= delivery_report)
 26 27     p.flush()
 28           
  
      印刷完了

    HTTPS:メッセージに関する通常の製造が構成されている場合、GSSAPIを使用するだけsecurity.protocolと、異なる認証メカニズムにユーザー名およびパスワード構成とキータブ他の認証パラメータへのパスを設定する必要があり、より多くの構成パラメータは、ドキュメントを参照します。 //github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md

    SASLの設定プロセス認証標準librdkafka詳細ます。https://github.com/edenhill/librdkafka/wiki/Using-SASL-with-librdkafka

おすすめ

転載: www.cnblogs.com/freeweb/p/11655833.html