0

我是駱駝新手,正在尋找模式或策略來管理駱駝路由中目標系統的可用性。駱駝和源/目標系統可用性策略

例如,假設我想: - 從一個文件服務器 讀取輸入的數據 - 過程中的數據(數據 - > targetData) - 到目標數據(TargetData)發送到使用REST服務的目標網站(稱之爲TargetSystem)

我的問題是如果TargetSytem停機,最好的策略是什麼?

我明白,如果一條路線失敗,可以回滾整個過程。但是如果TargetSystem是一個外部系統並且可能停機數小時,我不認爲試圖回滾這個過程直到目標系統啓動是一個好方法。

有沒有適合這個問題的任何模式或策略?

問候

吉爾斯

回答

0

這是我與一對夫婦的系統使用的模式。

  • 堅持你的TargetData某處(數據庫表,JMS隊列,Redis的,...)
  • 創建,讀取未發送TargetData並將其發送到TargetSystem
    • 如果路由轉移OK,標記TargetData據此(例如:在表格行中設置一個標誌,從隊列中移除,等等......)
  • 定時從定時器和/或其他路由觸發此類路由。您甚至可以使用shell命令觸發它,以手動「強制」重發未發送的數據。

您可以自定義這個您的需要和例如添加日誌記錄在適當情況下,跟蹤在數據庫表時,每個暫定發送時,它失敗多少次,有多少重試等等...

現在,您可以在2個模塊的模塊化應用程序:一個接收數據並對其進行處理,以TargetData,另一個是管理TargetData的TargetSystem轉移到
模塊可以表示2個CamelContextes,2個OSGi包,2個完全獨立的Java應用程序。