2017-10-12 7 views
0

VisualVMを使用して、akka-streams-kafkaを使用するアプリケーションをプロファイルします。スレッドをブロックするAkka-streams-kafkaのKafkaコーディネーター

それはカフカコーディネーターの多くは、これらのコーディネーターのスレッド It shows a lot of Kafka coordinator blocking threads

を遮断示して?

私もまた、スレッド I also have three Kafka consumers that are also blocking threads

をブロックしている3人のカフカの消費者を持って、私は彼らのために別の実行コンテキストを作成する必要がありますか?

答えて

0

簡単なオプションは、各スレッドに独自のコンシューマインスタンスを与えることである1つのスレッドごとに1つの消費者

  1. APIのJavaカフカクライアントから。 PRO:PROを実装するのが最も簡単です:多くの場合、最も高速ではありません。 スレッド間の調整が必要です。PRO:イン・オーダー・プロセッシングを行います。 は、パーティション単位で実装するのが非常に簡単です(各スレッドはメッセージを受け取った順にメッセージを処理します)。 CON:より多くの消費者 は、クラスタへのTCP接続(スレッドごとに1つ)を意味します。一般的に カフカは接続を非常に効率的に処理するので、これは一般的に のコストです。 CON:複数のコンシューマを使用すると、サーバがより多くの要求をサーバに送信し、データのバッチ処理がわずかに少なくなり、入出力スループットが に低下する可能性があります。 CON:すべての プロセスのスレッド総数は、パーティションの総数によって制限されます。
関連する問題