2016-07-27 8 views
0


Spring Cloud Data Flowは分散処理をどのように処理しますか?サーバーがPCFにデプロイされていて、2つのインスタンスがあるとすると、これらの2つのインスタンス間で入力データはどのように分散されますか?

Spring Cloud Data Flow分散処理

また、PCFに展開した場合の障害の処理方法について教えてください。 PCFは失敗したインスタンスの新しいインスタンスを生成します。しかし、それはまたストリームを配備するのを世話するか、手動の介入が必要ですか?

答えて

2

Spring Cloud Dataflowのドキュメントで「サーバー」と呼ばれるものと管理対象ストリームを構成するアプリケーションを区別する必要があります。

「サーバー」は、ストリームを構成するアプリケーションを生成し、展開要求を受け取り、それらを尊重するためにここにしかありません。 "サーバー"の複数のインスタンスを展開する場合、特別なことはありません。 PCFはそれをLBで前面に表示し、いずれのインスタンスもREST要求を処理します。 PCFにデプロイする場合、状態はバインドされたサービスで維持されるため、ここでは特別なことはありません。

するのではなく、デフォルトで、それはバインダー次第ですすなわち

stream create foo --definition "time | log" 
stream deploy foo --properties "app.log.count=3" 

、複数のインスタンスを使用して、その部分の一部または全部をストリームを展開すなわち、「アプリケーション」を参照している場合データをどのように配布するかを選択する実装。これはしばしばラウンドロビンバランスを意味します。

同じ概念のドメインオブジェクトに関するデータが同じアプリケーションインスタンスでどのように終わるかを制御したい場合は、Dataflowにその方法を伝える必要があります。何かのように

stream deploy bar --properties "app.x.producer.partitionKeyExpression=<someDomainConcept>" 

あなたは何を求めているのか分かりません。デプロイされたアプリは、のストリームです。ストリーム構成要素の多くのインスタンスがPCFによって送信され、受信されると、その要求を尊重します。その時点でデータフローの手が届かず、これは正確にSpring Cloud Deployer契約の境界がそこに設定されている理由です(他のランタイムでも同じです)/

関連する問題