2016-04-01 12 views
1

トピックからメッセージを読むことになっているコンシューマがいます。このコンシューマは実際にメッセージを読み取り、時系列データベースに書き込みます。複数の物理マシン上でクラスタとして実行される時系列データベースの複数のインスタンスがあります。Apache Kafka複数のコンシューマインスタンス

私たちの計画は、タイムシリーズサービスが実行されているすべてのマシンにコンシューマーを導入することです。したがって、時系列サービスが実行されている5つのノードがある場合は、ノードごとに1つのコンシューマインスタンスをインストールします。これらのコンシューマインスタンスはすべて同じコンシューマグループに属します。あなたは、プロデューサーのP1とP2の書き込みが2つのパーティション、すなわち、パーティション1とカフカトピックのパーティション2に見ることができるように

enter image description here

:だから絵に以下のようなルックスを設定します。次に、1つのコンシューマがインスタンスごとに実行されている時系列サービスのインスタンスが4つあります。私の時系列データベースに重複したメッセージが出ないように、私の消費者を適切に使って読むべきですか?

編集:カフカのドキュメントを通して読んだ後、私はこれらの二つの文に出くわした:

If all the consumer instances have the same consumer group, then this works just like a traditional queue balancing load over the consumers. 

If all the consumer instances have different consumer groups, then this works like publish-subscribe and all messages are broadcast to all consumers. 

は、したがって、上記の私の場合、それはキューのように動作していますか?私の理解は正しいのですか?

答えて

2

すべてのコンシューマが1つのグループに属している(同じgroupIdを持つ)場合、kafkaトピックはキューとして動作します。

重要:コンシューマー(すぐに使用できるカフカコンシューマー)がパーティションによって拡大縮小されるため、コンシューマーにパーティション以上の理由がありません。

http://kafka.apache.org/images/consumer-groups.png

関連する問題