0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Confluent環境でのKafka Produce遅延対策:見落としがちな認証設定

Last updated at Posted at 2024-12-20

概要

本記事では、生成系AIが作成した Kafka へのデータ送信(Produce)プログラムを実行した際、必要な設定項目が不足していたために処理時間が極端に長くなってしまう事象と、その対応方法を共有します。
不足していた設定として security.protocol および sasl.mechanisms を追記することで、想定通りの高速な処理が可能となりました。

    "security.protocol": "SASL_SSL",
    "sasl.mechanisms": "PLAIN",

image.png

本記事は、以下のシリーズの一部です。

image.png

引用元:Data in Motion 実現へ:Data Streaming Platform である Confluent の全貌 #Kafka - Qiita

発生事象

事象の背景

生成AIを用いてKafkaにデータを書き込むコードを生成する場合、しばしば OSS の Kafka 向けコードが生成されることがあります。この場合、Confluent 環境に必要な認証情報が設定されていないサンプルコードが出力されてしまいます。以下は不足設定例で、sasl.usernamesasl.password を含む認証情報、そして security.protocol / sasl.mechanisms が抜け落ちています。

# Kafkaプロデューサーの設定例(不足)
conf = {
    'bootstrap.servers': 'your_broker_address:9092',
    'client.id': 'python-producer'
}

image.png

発生した問題

認証情報が設定されていない状態で、sasl.usernamesasl.password のみを追加してプログラムを実行したところ、通常であれば 1秒未満で完了する処理が、1分以上、場合によっては5分程度もかかる現象が発生しました。以下の例では 1 分程度となっていますが、さらに時間がかかるケースも確認されています。

    'sasl.username':     sasl_username,
    'sasl.password':     sasl_password,

image.png

対応方法

今回の事象は、Kafka クラスターへの認証設定が不完全であったことが原因と考えられます。認証を正しく行うためには以下の設定が必要でした。security.protocolsasl.mechanisms を追加したところ、1 秒未満で処理が完了するようになりました。

    'sasl.username':     sasl_username,
    'sasl.password':     sasl_password,
    'security.protocol': 'SASL_SSL',
    'sasl.mechanisms':   'PLAIN',

image.png

これらの設定値を追加することで、Confluent環境での Kafka へのデータ書き込みが意図したパフォーマンスで実行可能になります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?