0

キャメルを初めてお持ちで、キャメルルートのターゲットシステムの可用性を管理するためのパターンや戦略を探しています。例えばキャメルとソース/ターゲットシステムの可用性戦略

、私が欲しいと言う: - ファイルサーバ から入力データを読み取るために - プロセスデータ(データ - > targetData) - 休憩のサービスを使用して、ターゲットのWebサイトへ(TargetData)を対象データを送信するために(それをTargetSystemと呼ぶ)

TargetSytemがダウンしている場合、私の質問は何ですか?

ルートが失敗した場合は、プロセス全体をロールバックすることができます。しかし、TargetSystemが外部システムであり、何時間もダウンする可能性がある場合、ターゲットシステムが起動するまでプロセスをロールバックしようとするのは良いアプローチではないと思います。

この問題に適したパターンや戦略はありますか?

よろしく

ジル

答えて

0

これは私がシステムのカップルと使用パターンです。

  • はどこかTargetData(データベーステーブル、JMSキュー、Redisの、...)は
    • 場合はターゲットシステムが未送信TargetData読み込み、に送信ルートを作成します永続します転送はOK TargetDataに応じて(例えば、テーブル行にフラグを設定し、キューから削除するなど)
  • このようなルートは、タイマーや他のルートから定期的にトリガーします。あなたは、シェルコマンドを使ってそれを起動して、未送信データの再送を手動で強制することさえできます。

あなたのニーズにこれをカスタマイズし、各仮sendは、それは、失敗した回数、発生時に適切な場合には、たとえば、ロギングを追加DBテーブルに追跡することができますどのように多くの再試行のように...

これで、2つのモジュールでアプリケーションをモジュール化することができますTargetDataデータを受けて1とそれを処理し、ターゲットシステムTargetDataの転送を管理している別の。
モジュールは、2つのCamelContext、2つのOSGiバンドル、2つの完全に別々のJavaアプリケーションを意味します。