2
1)単一SpringBootインスタンスがたStreamListenerで注釈(メソッドを処理するために複数のスレッドを使用しない)、各パーティションからの各メッセージ?
2)パーティションごとに複数のスレッドを構成することは可能ですか、リスナースレッドからワーカープールに手動でハンドオフする必要がありますか?
1)単一SpringBootインスタンスがたStreamListenerで注釈(メソッドを処理するために複数のスレッドを使用しない)、各パーティションからの各メッセージ?
2)パーティションごとに複数のスレッドを構成することは可能ですか、リスナースレッドからワーカープールに手動でハンドオフする必要がありますか?
....consumer.concurrency
は、スレッド数(デフォルトは1)を制御します。
パーティションはスレッド間で分散されます。 20のパーティションと4つのスレッドがある場合。彼らはそれぞれ5つのパーティションを取得します。
少なくともすべてのインスタンスの集約同時実行性のパーティションが必要です。 (2つのアプリケーションインスタンスと5つのスレッドがある場合は、少なくとも10個のパーティションが必要です)。
単一のパーティションから複数のスレッドにメッセージを配信しないでください。オフセットは新しいスレッドに渡すとすぐにコミットされ、メッセージが失われる可能性があります。
並列性を必要とするよりも多くのパーティションを持つ側では常に誤りがあります。
Garyさんのコメントに追加するには、サイジングプロセスをガイドする良い記事があります.https://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in- a-kafka-cluster / –