第5章 Kafka プロデューサー設定のチューニング
設定プロパティーを使用して、Kafka プロデューサーのパフォーマンスを最適化します。標準の Kafka プロデューサー設定オプションを使用できます。設定を調整してスループットを最大化すると、レイテンシーが増加する可能性があり、その逆も同様です。必要なバランスを取得するために、プロデューサー設定を実験して調整する必要があります。
プロデューサーを設定するときは、パフォーマンスと動作に大きな影響を与えるため、次の点を慎重に考慮してください。
- 圧縮
- メッセージをネットワーク経由で送信する前に圧縮すると、ネットワーク帯域幅が節約され、ディスクストレージ要件を減らすことができます。ただし、圧縮および展開のプロセスにより CPU 使用率が増加するという追加コストがかかります。
- バッチ処理
- プロデューサーがメッセージを送信するときのバッチサイズと時間間隔を調整すると、スループットとレイテンシーに影響を与える可能性があります。
- パーティション設定
- Kafka クラスターのパーティショニングストラテジーは、並列処理と負荷分散によりプロデューサーをサポートできます。これにより、プロデューサーは複数のパーティションに同時に書き込むことができ、各パーティションはメッセージのシェアを均等に受け取ります。他のストラテジーには、フォールトトレランスのためのトピックレプリケーションが含まれる場合があります。
- アクセスのセキュリティー保護
- ユーザーアカウントをセットアップして Kafka へのセキュアなアクセスを管理する ことにより、認証、暗号化、および認可のためのセキュリティー対策を実装します。
5.1. 基本のプロデューサー設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
接続およびシリアライザープロパティーはすべてのプロデューサーに必要です。通常、追跡用のクライアント ID を追加し、プロデューサーで圧縮してリクエストのバッチサイズを減らすことが推奨されます。
基本的なプロデューサー設定は、以下のようになります。
- パーティション内のメッセージの順序は保証されません。
- ブローカーに到達するメッセージの完了通知は持続性を保証しません。
基本的なプロデューサー設定プロパティー
- 1
- (必須) Kafka ブローカーの host:port ブートストラップサーバーアドレスを使用して Kafka クラスターに接続するようプロデューサーを指示します。プロデューサーはアドレスを使用して、クラスター内のすべてのブローカーを検出し、接続します。サーバーがダウンした場合に備えて、コンマ区切りリストを使用して 2 つまたは 3 つのアドレスを指定しますが、クラスター内のすべてのブローカーのリストを提供する必要はありません。
- 2
- (必須) メッセージがブローカーに送信される前に、各メッセージの鍵をバイトに変換するシリアライザー。
- 3
- (必須) メッセージがブローカーに送信される前に、各メッセージの値をバイトに変換するシリアライザー。
- 4
- (オプション) クライアントの論理名。リクエストのソースを特定するためにログおよびメトリックで使用されます。
- 5
- (オプション) メッセージを圧縮するコーデック。これは、送信されます。場合によっては圧縮形式で保存され、コンシューマーに到達すると展開されます。圧縮は、スループットを向上させ、ストレージの負荷を軽減するのに役立ちますが、圧縮または圧縮解除のコストが非常に高くなる可能性がある低レイテンシーのアプリケーションには適していない可能性があります。