2017-07-20 8 views
0

私は、複数の操作を行うために使用する場合は、カフカストリーム - 複数の単一インスタンスに参加し、スレッドの数

が言うことができます二つのトピック、に参加してきた、私はトピックA(2つのパーティション)とトピックB(2を持っていますパーティション)とKafkaStreamsアプリケーションの単一インスタンスを実行します。

は、私は2つのトピック間の休憩、左ミスと右のミスを見つけるために、ユースケースを持っているので、私は3つの事業、

A.join(B) 
B.leftJoin(A) 
A.leftJoin(B) 

は、ドキュメントごとにように、2つのタスクが存在します(最大(以下行っております2,2))=

私は、単一のインスタンスを実行しておりますので
1. A.join(B) - two tasks created - each task is assigned two 
    partitions 
2. B.leftJoin(A) - two tasks created - each task is assigned 
    two partitions 
3. A.leftJoin(B) - two tasks created - each task is 
    assigned two partitions 

は、スケールアップするために、私はnum.stream.threadsを設定することを計画しています、各トポロジおよび6つのタスクの合計、すなわちのために作成されます6、各スレッドには1つのタスクが割り当てられます。

は私の理解の上で正しいですか?私が間違っている場合は私を修正してください。

ありがとうございました。合流のドキュメントから

よろしく、 サティッシュ

答えて

0

カフカStreamsによって提供されるデフォルトの実装では、ソース・トピック・パーティションごとに最大1つの パーティションに各タスクを割り当て DefaultPartitionGrouper、あります;したがって、 タスクの生成数は、入力トピックのうち最大のパーティション数である に等しくなります。 [1] http://docs.confluent.io/current/streams/developer-guide.html#optional-configuration-parameters

:あなたは partition.grouper設定をオーバーライドしていない場合は、[1]

をので、タスクの数は2

リンクする必要があります

関連する問題