3

毎秒数千のリクエストを処理するデータ パイプラインの主要コンポーネントとしてKafkaとを使用しています。Zookeeper私はSamza、データに対して行う必要がある小さな変換のためのリアルタイム データ処理ツールとして使用しています。

私の問題は、私の消費者の 1 人 (たとえばConsumerA) がいくつかのトピックを消費しKafkaて処理することです。基本的には消化したトピックの要約を作成します。さらに、このデータを別のトピックとして Kafka にプッシュしたいのですが、それは Kafka と私のコンポーネントでループを形成します。

これが私を悩ませているのですが、これは Kafka で望ましいアーキテクチャですか?

ですべての処理をSamza行い、消化された (要約) 情報のみをKafkafromに保存する必要がありSamzaます。しかし、これから行う処理の量は非常に重いため、別のコンポーネントを使用したいと考えています ( ComponentA)。私の質問は、あらゆる種類のデータ パイプラインに一般化できると思います。

では、コンポーネントがデータ パイプラインでコンシューマーおよびプロデューサーになることは良い方法でしょうか?

4

1 に答える 1

1

Samza が消費しているトピックとは異なるトピックに書き込みを行っている限り、問題はありません。Kafka から読み書きする Samza ジョブは標準であり、アーキテクチャによって意図されています。また、別のシステムから一部のデータを取り込む Samza ジョブ、または Kafka から別のシステムに一部のデータを書き込むジョブ (または Kafka をまったく使用しないジョブでさえも) を使用することもできます。

ただし、ジョブを同じトピックから読み書きすることは、ループが発生する場所であり、回避する必要があります。これにより、Kafka ブローカーのディスクが非常に速くいっぱいになる可能性があります。

于 2015-07-14T04:15:47.417 に答える