0
VisualVMを使用して、akka-streams-kafkaを使用するアプリケーションをプロファイルします。スレッドをブロックするAkka-streams-kafkaのKafkaコーディネーター
それはカフカコーディネーターの多くは、これらのコーディネーターのスレッド
を遮断示して?
をブロックしている3人のカフカの消費者を持って、私は彼らのために別の実行コンテキストを作成する必要がありますか?
VisualVMを使用して、akka-streams-kafkaを使用するアプリケーションをプロファイルします。スレッドをブロックするAkka-streams-kafkaのKafkaコーディネーター
それはカフカコーディネーターの多くは、これらのコーディネーターのスレッド
を遮断示して?
をブロックしている3人のカフカの消費者を持って、私は彼らのために別の実行コンテキストを作成する必要がありますか?
簡単なオプションは、各スレッドに独自のコンシューマインスタンスを与えることである1つのスレッドごとに1つの消費者
- APIのJavaカフカクライアントから。 PRO:PROを実装するのが最も簡単です:多くの場合、最も高速ではありません。 スレッド間の調整が必要です。PRO:イン・オーダー・プロセッシングを行います。 は、パーティション単位で実装するのが非常に簡単です(各スレッドはメッセージを受け取った順にメッセージを処理します)。 CON:より多くの消費者 は、クラスタへのTCP接続(スレッドごとに1つ)を意味します。一般的に カフカは接続を非常に効率的に処理するので、これは一般的に のコストです。 CON:複数のコンシューマを使用すると、サーバがより多くの要求をサーバに送信し、データのバッチ処理がわずかに少なくなり、入出力スループットが に低下する可能性があります。 CON:すべての プロセスのスレッド総数は、パーティションの総数によって制限されます。