2017-04-03 27 views
0

我正在構建一個應用程序,該應用程序將調用具有2個相同實例的Web服務,每個實例在不同的服務器上運行,並擁有自己的IP。處理在多個實例上運行的Web服務的故障

該應用程序可以隨時調用任何服務實例,但有時可能會遇到困難之一(由於網絡故障或實例問題)獲取響應。

什麼是推薦的方式使應用程序自動停止使用有問題的實例?

如何重新使用實例?

是否有標準庫或工具來幫助這種情況?

+1

通常情況下,您將擁有負載均衡器服務器,該服務器將請求引導至兩個實例。客戶端應用程序應連接到負載平衡器URI,並且不應該知道您的兩個實例。如果其中一個實例失敗,則負載均衡器會將所有流量導向剩餘的實例,直到失敗的實例恢復。 – Dijkgraaf

回答

0

使用負載平衡器。

您的應用程序必須連接到LB,而不是直接連接到Web服務器。 LB保持每個配置的服務器的狀態(通過超時或明確的http狀態調用)。它們會自動禁用斷開連接的服務器的流量,並在實例恢復後啓用它。

稍後,您可以根據自己的要求(手動或自動縮放)添加或刪除實例,而無需對應用進行任何更改。

HAProxy和Nginx廣泛用於互聯網規模負載平衡。雲提供商也提供這種服務,如果您在雲上(如AWS具有彈性負載平衡功能,Google Cloud具有負載平衡功能),則可以使用它們。

相關問題