2016-07-04 5 views
3

私はカフカストリームを使用して、カフカのトピックで並行作業を行っています。Kafkaストリームを使用したワーク配布

ストリームは、以下のフォーム

stream(topic) 
.map(somefunction) 
.through(secondtopic) 

である私は、15個のワーカースレッドを持つようにKStreamsを設定しましたが、作業が正しく(あるいは全くない)スレッド間でバランスされていないように思えます。セットアップに何か問題があるかもしれませんか?私は作業がワーカースレッドに均等に分散されることを期待していましたが、それはそうではないようです。

snapshot from jvisualvm

+0

を見ていますか? –

+0

jvisualvmスナップショットのリンクが壊れています。 –

答えて

8

入力カフカのトピックパーティションがあるとして、あなただけのように多くのスレッドを持つことができます。

1つのパーティション内のメッセージは1つのスレッドで処理され、メッセージの配信よりも優先順位が高くなります。

実際、KafkaStreams入力トピックパーティションは、メッセージではなくタスク間で均等に分散されます。

したがって、パーティション間でメッセージのバランスが取れている場合にのみ、スレッド間のバランスがよくなります。スレッドモデルに関する詳細情報を入手するには

はあなたのトピックでご利用いただけますどのように多くのパーティションConfluent documentation

+0

"したがって、パーティション間のメッセージのバランスが取れている場合にのみ、スレッド間のバランスがよくなります。ここの要点です。明確化のために –

+0

ありがとう! – dmead

+0

@dmeadもしあなたがそれに満足しているなら、あなたはこの答えを受け入れるべきです。 –

関連する問題