2013-07-31 44 views
6

Twilio和其他HTTP驅動的Web服務具有fallback URL的概念,其中如果主URL超時或以其他方式失敗,Web服務會將GET或POST發送到您選擇的URL。在Twilio的情況下,如果回退URL也失敗,它們將不會重試請求。我希望將備用URL託管在單獨的機器上,以便在主服務器關閉或無法訪問時,錯誤不會在以太網中丟失。存儲和轉發HTTP請求重試?

我想爲輔助,以某種方式:

  1. 商店請求到後備網址
  2. 重播的要求略有不同的URL在主服務器上
  3. 重試#2,直到成功,然後從隊列/數據庫中刪除請求

是否有一些現有的軟件可以做到這一點?如果需要的話,我可以自己創建一些東西,我只是認爲這將是某人已經完成的事情。我對HTTP和周圍的工具(代理,反向代理等)不熟悉,無法知道要搜索的正確術語。

回答

3

有幾種可能性。

一種選擇是使用通用地址冗餘協議或鯉魚。以下是手冊頁的簡要說明。

「鯉魚允許同一本地網絡上的多個主機共享一組IP地址,其主要目的是確保這些地址始終可用,但在某些配置中,鯉魚還可以提供負載平衡功能。

應該可以配置IP平衡,以便當主或主http服務失敗時,輔助或備用http服務成爲主服務器。鯉魚是主機而不是應用服務。所以當http服務關閉時,它也應該取下鯉魚的網絡接口來完成它的工作。這意味着您需要多個IP地址才能登錄到機器並進行維護。原始服務恢復聯機後,您需要一個腳本才能執行後續操作。

第二種選擇是使用nginx。這可能更適合你正在嘗試做的事情。

很多年前,我需要類似於正在嘗試做的事情,並且我最終一起做了一件事情。本質上它是一個開關。當'A'失敗時,切換到'B'。重新同步過程是在'A'重新聯機後,從'B'中取時間標記的日誌並將它們播放回'A'。