Domain-Name-System

如何打造高可用的應用伺服器?

  • July 10, 2016

我正在使用一些使用移動網際網路與我的應用程序伺服器通信的硬體單元。

最初,硬體在硬體中有一個用於通信的硬編碼 IP 地址(負載平衡器),用於將流量路由到我的應用程序伺服器;現在,如果負載均衡器出現故障,它背後的整個冗餘基礎設施變得無用,這會產生單點故障,因為它的目標是共享負載,而不是保持可用性。

現在我要求硬體創建者將其切換為使用 DNS,並且通過使用多個A 記錄我得到了更好的結果。在這種情況下,我可以讓應用程序伺服器直接與硬體一起工作;但是如果一台伺服器出現故障,一些硬體單元會在一段時間內無法通信,但它會在 20-30 分鐘內轉到另一台伺服器;因為 DNS 故障轉移並不總是有效。

那麼我怎樣才能克服這個問題並讓我的應用程序伺服器一直以某種方式工作呢?

由於您的問題非常籠統,並且沒有提供有關所涉及軟體的任何詳細資訊,因此我的回答也很簡短:只需使用一組兩個負載均衡器,它們通過使案例如vrrp ( “虛擬路由器冗餘協議”)或起搏器(還有更多選項可用)。為此使用兩台機器,它們要麼是裸機,要麼是從兩個不同的主機執行。如果其中一台機器出現故障,另一台將接管 IP。將您的記錄指向此 IP(並記住:DNS 不是為了實現高可用性而設計的。)

**編輯1:**正如@Ondra Sniper Flidr 在評論中提到的那樣:另一種解決方案是keepalived

**編輯 2:**您還可以查看CARP,即“通用地址冗餘協議”。例如,使用該協議的軟體解決方案是UCARP

在此處輸入圖像描述

引用自:https://serverfault.com/questions/733177