2016-08-17 17 views
3

Im既存POCを変換するFlinkアプリケーション/トポロジを使用するKafkaStreams。私の質問は配備です。kafkastreams - 処理能力を追加する

具体的には、Flinkでは「作業者ノード」をFlinkインストールに追加し、次にデータレートの増加に追いつくためにトポロジに並列化を追加します。

データレートが増加するとKStreamsの容量はどのように増加しますか? KStreamsはこれを自動的に処理しますか?私はより多くのプロセス(ala Micro-services)を立ち上げていますか?

ここに大きな画像がありませんか?

答えて

6

さらに多くのプロセス(ala Micro-services)を起動しますか?

短い答えはイエスである:(容量の追加)

  • 回答1:スケールアウトするには、単に、例えば、あなたのストリーム処理アプリケーションの別のインスタンスを起動します別のマシンでアプリケーションのインスタンスは相互に認識され、自動的に処理作業を共有し始めます。これはライブ操作中に行うことができ、データが失われることはありません!
  • 回答2(削除容量):ストリーム処理アプリケーションの実行中のインスタンスを1つまたは複数停止するだけです(例:実行中のインスタンスのうち2つをシャットダウンします。アプリケーションの残りのインスタンスは、他のインスタンスが停止し、自動的に停止したインスタンスの処理作業を引き継ぐことを認識します。これはライブ操作中に行うことができ、データが失われることはありません!

詳細については、Kafka Streamsのドキュメント(http://docs.confluent.io/3.0.0/streams/developer-guide.html#elastic-scaling-of-your-application)を参照してください(残念ながら、KafkaストリームのApache Kafkaドキュメントにはこれらの詳細はありません)。

ここでは大きな画像がありませんか?

大きな写真は実際には素敵で小さなものです。 :-)

私は多くのユーザーが他の関連技術の複雑さによって混乱していると感じているので、ストリーム処理(その展開を含む)を

Kafka Streamsアプリケーションは、Kafka Streamsライブラリを使用する普通の普通のJavaアプリケーションです。既存のストリーム処理テクノロジとの大きな違いは、Kafka Streamsライブラリを使用することで、アプリケーションをスケーラブルで柔軟性に富み、フォールトトレラントにすることです。 Flick、Spark、Stormなどのために行うことができます。Kafka Streamsデプロイメントモデルは、アプリケーションの追加インスタンス(文字通り同じコード)を開始または停止するだけで、はるかに簡単で簡単です。これは、Puppet、Ansible、Docker、Mesos、YARNなど、基本的にどの展開関連ツールでも機能しますが、これらに限定されません。 java ... YourAppを実行して手動で実行することもできます。

+0

したがって、彼らはフリンク/ストーム/ etcアプリケーションのようなデータを(集計などのために)共有していますか? – ethrbunny

+0

また、この実行にはKafkaのConfluentバージョン/ビルドを使用する必要がありますか? – ethrbunny

+0

アプリケーションインスタンスはデータを共有しません。私はより良い理解を得るためにドキュメントを読むことをお勧めします。 –

関連する問題