2017-12-13 4 views
0

カフカメッセージを受信する際にマルチスレッドを実装すると、多くのメッセージを処理できますか? 例えば、私はいくつかの高遅延メッセージ処理を行いたいと思います。メッセージ処理を処理するためにマルチスレッドを実装する必要があるかどうかは疑問です。 誰でも知っていますか?複数のスレッドを使用したカフカメッセージ消費のスケーリング

答えて

2

あなたが達成したいと思っていることはそれほどわかりませんが、これを考慮してください。コンシューマ側のスケーラビリティは、トピック内のパーティション数を増やし、同じコンシューマ・グループ内のコンシューマを増やすことで実現できます。異なるコンシューマを持つ異なるパーティションからのメッセージの並列化が可能です。そして、各コンシューマ内部では、パーティション内のメッセージをループ内でpoll()を使って取得するので、もちろんポーリングからメッセージを取得して内部バッファに入れてスレッドプールを並列に処理することができます注文があなたにとって重要でない場合)、新しいメッセージを得るためにメインスレッドを再びpoll()にしておきます。オーダーに関連して、順番どおりのメッセージを処理することは、順番にオフセットをコミットすることを意味するため、コミットフェーズに注意する必要があります。

関連する問題