2017-02-05 7 views
2

-スプリングクラウドストリームカフカ消費パターン

1)単一SpringBootインスタンスがたStreamListenerで注釈(メソッドを処理するために複数のスレッドを使用しない)、各パーティションからの各メッセージ?

2)パーティションごとに複数のスレッドを構成することは可能ですか、リスナースレッドからワーカープールに手動でハンドオフする必要がありますか?

答えて

2

....consumer.concurrencyは、スレッド数(デフォルトは1)を制御します。

パーティションはスレッド間で分散されます。 20のパーティションと4つのスレッドがある場合。彼らはそれぞれ5つのパーティションを取得します。

少なくともすべてのインスタンスの集約同時実行性のパーティションが必要です。 (2つのアプリケーションインスタンスと5つのスレッドがある場合は、少なくとも10個のパーティションが必要です)。

単一のパーティションから複数のスレッドにメッセージを配信しないでください。オフセットは新しいスレッドに渡すとすぐにコミットされ、メッセージが失われる可能性があります。

並列性を必要とするよりも多くのパーティションを持つ側では常に誤りがあります。

+2

Garyさんのコメントに追加するには、サイジングプロセスをガイドする良い記事があります.https://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in- a-kafka-cluster / –