2

既存のレガシーJavaバッチアプリケーションを廃止し、最新のバッチフレームワークで再作成する予定です。 は、私たちが近代化するバッチジョブの数が多いことを、我々はSpring Cloudタスクを使用してスタンドアロンSpringバッチを動的にデプロイする方法

  1. に私たちを可能とするフレームワークまたはアーキテクチャを探しているを考えると、私たちは、動的に新しいバッチを展開できるようになるバッチソリューションを開発し、それらが作成されたときに、既存の配備されたアプリケーションを妨げることなく実行できます。 - Springクラウドタスクはこの機能を提供しますか?注:私たちは、ローカルサーバーにアプリケーションを展開するだけで、クラウドとは何の関係もありません。
  2. Spring Batch/Bootがバッチアプリケーションから通常期待される機能を提供できる場合、Spring Cloud Taskに追加する特別な値は何ですか? - これは、オンラインで入手できるSpringのドキュメントから完全に理解できませんでした。
  3. Spring Cloud Taskのドキュメントから、アプリケーション内で多くのタスクを実行できることを理解できました。それぞれのタスクにそれぞれのライブラリの依存関係がある場合、どうすればよいですか?これは他のタスクの依存関係と矛盾しますか?だからその場合、これらのタスクのそれぞれを新しいアプリケーションに移すべきか、それともそのために回避するべきでしょうか?
+0

私が返信する前に明確にするために、このすべてが「ベアメタル」で動作するように意図されていますか? VM /物理サーバではなく、どんな種類のクラウドプラットフォームでも使用できますか? –

+0

はい、正しいです。 –

答えて

7

のご質問にお答えするには:

  1. ん春クラウドタスクは、オーケストレーションを扱う -号春クラウドタスクは、タスクやジョブのオーケストレーションを処理しません。このエコシステムでは、タスクやジョブのデプロイ/オーケストレーションを処理するコンポーネントは、実際にはSpring Cloud Data Flowです(YARN、Cloud Foundry、Kubernetes、Mesosなどのクラウドプラットフォームを使用するかどうかを尋ねた理由です...環境Spring Cloud Data Flowでサポートされています)。に必要とすることなく、状態管理に関して持つバッチを春に
    1. 同様の能力: - 春クラウドタスクは春ブーツ/春のバッチ上で提供しない付加価値をどのよう
    2. 春クラウドタスクは、いくつかのことを提供するように設計されてバッチジョブを作成します。クラウド環境でBootアプリケーションを実行する場合、環境から環境への結果を得るための標準的な方法はありません(YARNは、Kubernetesなどのジョブとは異なるCloud Foundryのタスクとは異なる結果を処理します)。 Spring Batchはこれを提供しますが、短命のプロセスはすべてBatch APIのオーバーヘッドを必要とするため、Spring Cloud Taskはこれらのユースケースに軽い触感を提供します。
    3. 情報リスナーを自動的に追加します。 Spring XDでは、XDコンテナでジョブを実行したときに、XDコンテナが自動的に、リスンできるイベントをブロードキャストする多数の情報リスナを追加しました。 Spring Cloud Taskは、XDコンテナを必要とせずに同じ機能を提供します。
    4. Spring Cloud Streamとの統合。 Spring Cloud Taskは、Spring Cloud Streamから受信したメッセージからタスクを起動する機能を提供します。また、前述の情報メッセージ(バッチ・イベントとタスク・イベントの両方)は、Spring Cloud Streamチャネルを介して送信されます。
    5. DeployerPartitionHandlerクラウド環境で作業する場合、このPartitionHandlerの実装では、パーティションバッチジョブのワーカーをタスクとして起動できます。これにより、現代のクラウド環境でリソースを浪費する作業をリッスンする従業員を事前配備する伝統的なオプションの代わりに、パーティション化されたバッチ・ジョブの動的スケーリングが可能になります。
  2. 複数のタスクのパッケージ化はどのように依存関係で動作しますか?つまり、要するに、これはお勧めできません。 Spring Cloud Taskのアイデアは、Spring Bootアプリケーションの実行がTaskであることです。複数のタスクをパッケージ化し、異なるメソッドを使用することで、異なる刺激に基づいて実行させることができますが、これはSpring Cloud Taskの正しい使用に不可欠な12要素のアプリケーションの概念に反するものです。

現代バッチプラットフォームのための最良の選択肢のための私の2セント
、あなたは本当に最初のプラットフォームのからいくつかを検討する必要があり、それはクラウドファウンドリー/ Kubernetes/Mesos /糸層から始まります。それがなければ、インフラストラクチャの大部分を自分で構築することになります。それがSpring XDがSpring Cloud Data Flowに進化した理由です。 Spring XDのコンテナに追加された複雑さは、現代のプラットフォームを実行することによって除去されます。その部分がなければ、ほとんどの現代のプラットフォームがあなたのために処理するアプリケーションの展開とオーケストレーションを管理するのに多くの時間を費やすことになります。

そこから、簡単なタスクのためのSpring Cloud Task、バッチジョブのSpring Batch、そしてオーケストレーションのSpring Cloud Data Flowを使用すると、かなり簡単にIMHOになります。

+0

マイケルありがとうございました。それは本当に有益かつ有益でした。 –

関連する問題