高可用和負載均衡架構設計模式


下面總結一下常見的高可用和負載均衡架構模式。

 

1. 客戶端切換。

客戶端配置多個服務器地址。如果發生某個服務器無法訪問或者使用異常,客戶端就切換到其它服務器上。

優點:簡單,高效,可以在業務層面檢測服務可用性

缺點:需要提前配置。

 

Mysql connect 這樣做load balance 和failed over .在JDBC連接上可以配置多個服務器。

 

http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html#connector-j-reference-url-format

 

 

# Connection URL for a server failover setup: 
jdbc:mysql//primaryhost,secondaryhost1,secondaryhost2/test

 

 

 

 

2. DNS映射

DNS服務返回不同的IP來達到切換和負載均衡的效果。由於DNS會緩存,實際使用中問題會比較多。.

優點:對使用者是透明,

缺點:由於DNS緩存問題,可能切換不及時

 

3. 服務注冊發現

注冊服務器(zookeeper)用來管理當前可以用的服務提供。dubbo使用這種方式來實現。

     優點:可以使用復雜的負載均衡策略,可以實現服務路由。

     缺點:實現復雜

 

 

http://shiyanjun.cn/archives/325.html

 

4. keepalive+浮動IP

 

如果正在使用的機器出問題,外網Ip可以根據情況,分配到另外一台主機上。這樣IP切換對外部訪問者是透明的。不過要實現浮動IP,對底層網絡的支持。在現在的雲服務器中無法使用。

 

優點: 高效,對客戶端透明

缺點: 對主機網絡有要求,無法在雲服務器中使用。

 

5 代理服務器(nginx ,lVS,Haproxy)

代理服務器檢測上游服務器是否可用。並且會根據一定策略來路由前端過來的請求。為了避免代理服務器出現故障,導致系統無法被訪問。所以一般都要結合keepalive+vip一起使用。

優點: 支持大量服務器,可以配置復雜路由規則

缺點:代理服務器有單點問題,故障檢測不及時

 

總結以上模式主要區別在:

1. 服務器信息誰維護,客戶端,代理服務器或者注冊服務

2. 故障發現手段。通用的檢測方式只能檢查端口能不能連接,如果出現服務器僵屍情況常常不能及時被發現。

3. 服務器利用率。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM