2013-07-06 63 views
0

我想爲第三方Web服務提供高度可靠的Web服務。這裏的高可靠性意味着來自第三方Web服務的任何單個請求將被我的Web服務成功處理。第三方服務對失敗的請求沒有重試機制,也不能更改其請求格式(一個http POST,其中包含字段和值)。Web服務的高可靠性

我不考慮故障轉移解決方案,如多節點負載平衡器後面的符合要求,因爲一個節點可能會失敗,負載平衡器可能仍路線從池中刪除它要求其前。

我正在考慮使用類似Amazon SQS的接收來自第三方請求的請求並將其傳遞到我的Web服務上的東西,因爲SQS有一個重試機制。然而,這裏的困難在於SQS似乎要求將內容填入「消息」參數中,而這不能由第三方服務來實現。

有沒有解決方案?

回答

1

唯一真正的解決方案,以確保我能想到的一個請求的完成是一個包裝添加到第三方Web服務,以便它確實有一個重試機制。包括HA在內的任何其他解決方案都將具有失敗點。想想看,如果亞馬遜的SQS服務失敗,你仍然有第三方Web服務將從下服務請求信息和失敗。

1

我不考慮故障轉移解決方案,如多個節點 負載平衡器後面的符合要求,因爲一個節點可以 失敗,負載平衡器可能仍然航線它要求其 之前從池中刪除。

您認爲SQS的架構是什麼樣的。他們有負載均衡器的前端。如果前端失敗,那麼這些請求將失敗。 SQS仍然具有高可用性,因爲如果您重試請求,它可能會成功。爲了避免向用戶顯示錯誤,您應該在客戶端重新構建。