1. 程式人生 > >nginx、keepalived、lvs、f5可以很好的解決高可用、擴展性、反向代理+擴展均衡的問題

nginx、keepalived、lvs、f5可以很好的解決高可用、擴展性、反向代理+擴展均衡的問題

入口 技術分享 實施 linux vi 優點 分享 增加 inux 服務

1.單機

技術分享圖片

  1)瀏覽器通過DNS-server,域名解析到ip

  2)瀏覽器通過ip訪問web-server

  缺點:

    1)非高可用,web-server掛了整個系統就掛了

    2)擴展性差,當吞吐量達到web-server上限時,無法擴容

2.DNS輪詢

  DNS輪詢:通過在DNS-server上對一個域名設置多個ip解析,來擴充web-server性能及實施負載均衡的技術

技術分享圖片

  1)多部署幾份web-server,1個tomcat抗1000,部署3個tomcat就能抗3000

  2)在DNS-server層面,域名每次解析到不同的ip

  優點:

  1)零成本:在DNS-server上多配幾個ip即可,功能也不收費

  2)部署簡單:多部署幾個web-server即可,原系統架構不需要做任何改造

  3)負載均衡:變成了多機,但負載基本是均衡的

  缺點:

  1)非高可用:DNS-server只負責域名解析ip,這個ip對應的服務是否可用,DNS-server是不保證的,假設有一個web-server掛了,部分服務會受到影響

  2)擴容非實時:DNS解析有一個生效周期

  3)暴露了太多的外網ip

3.nginx

  nginx:一個高性能的web-server和實施反向代理的軟件

  
技術分享圖片

  

  1)站點層與瀏覽器層之間加入了一個反向代理層,利用高性能的nginx來做反向代理

  2)nginx將http請求分發給後端多個web-server

  優點:

    1)DNS-server不需要動

    2)負載均衡:通過nginx來保證

    3)只暴露一個外網ip,nginx->tomcat之間使用內網訪問

    4)擴容實時:nginx內部可控,隨時增加web-server隨時實時擴容

    5)能夠保證站點層的可用性:任何一臺tomcat掛了,nginx可以將流量遷移到其他tomcat

  缺點:

    1)時延增加+架構更復雜了:中間多加了一個反向代理層

    2)反向代理層成了單點,非高可用

4.keepalived

  keepalived:一款用來檢測服務狀態存活性的軟件,常用來做高可用

技術分享圖片

    1)做兩臺nginx組成一個集群,分別部署上keepalived,設置成相同的虛IP,保證nginx的高可用

    2)當一臺nginx掛了,keepalived能夠探測到,並將流量自動遷移到另一臺nginx上,整個過程對調用方透明

  技術分享圖片

    優點:

      1)解決了高可用的問題

    缺點:

      1)資源利用率只有50%

      2)nginx仍然是接入單點

4.lvs/f5/nginx

   lvs/nginx:Linux Virtual Server,使用集群技術,實現在linux操作系統層面的一個高性能、高可用、負載均衡服務器

   f5:一個高性能、高可用、負載均衡的硬件設備

技術分享圖片

    1)可以通過lvs/nginx來擴展多個nginx和tomcat(上面的lvs可以用nginx代替)

    2)通過keepalived+VIP的方案可以保證可用性

5.DNS輪詢

水平擴展,才是解決性能問題的根本方案,能夠通過加機器擴充性能的方案才具備最好的擴展性

    

技術分享圖片

  1)通過DNS輪詢來線性擴展入口lvs層的性能

  2)通過keepalived來保證高可用

  3)通過lvs來擴展多個nginx

  4)通過nginx來做負載均衡,業務七層路由

nginx、keepalived、lvs、f5可以很好的解決高可用、擴展性、反向代理+擴展均衡的問題

nginx、keepalived、lvs、f5可以很好的解決高可用、擴展性、反向代理+擴展均衡的問題