分佈式高性能的若干問題

1、Linux的什麼內核包括LVS,說說LVS的三種負載均衡模式的原理與效率對比;
  • 2.6.32之後的內核版本包括LVS
  • LVS-DR,直接相連模式,調度器與實際服務器各有一塊網卡,並且都連在相同的網段上,客戶端訪問調度器,之後直接調度器進行ARP解析,解析到相應的服務器上,從而從服務器返回,在整個過程中公用一個對外訪問地址;
  • LVS-NAT,NAT模式,調度器通過端口轉發的方式,將數據內容通過端口發送到對應的實際服務器上,在IP數據報的地址上包含到相應的端口,然而IP或者其他信息都僅保存在調度器上,然後通過調度器返回;
  • LVS-TUN,TUN隧道模式,調度器包含一個擁有一個虛擬的IP地址,在客戶端進行訪問時,在數據包上重新封裝一層,之後按照一定策略路由到各個服務節點上,服務節點通過統一訪問的方式返回服務器,返回時依然使用虛擬IP。
2、Keepalived的實現原理,Keepalived是HA(高可用方案)還是負載均衡;
  • keepalive提供虛擬路由功能可以實現雙機浮動vip,在發生故障時進行雙機vip的動態綁定,從而實現雙機熱備功能。keepalive監測機制是通過healthcheck功能完成,在ip層keepalived定時想服務器發送icmp包,如果沒有迴應則判定服務器失效,在tcp層主要是通過端口判定是否正常工作,在應用層根據服務器程序是否運行來判定服務器是否正常。
  • 從服務的角度來看,keepalived沒有進行消息的分發,所以i還是屬於高可用的實現方案;
3、HAProxy的原理、特性,並解釋HAProxy流行的原因;
  • Haproxy實現了一種事件驅動,單一進程模型。在第四層、第七層上都可以實現相應的代理服務,同時在haproxy上可以設置。客戶端發送到haproxy之後進行相應的處理,然後轉發到Backend後端調用實際的服務器,最後返回客戶端。
  • Haproxy開源,單進程事件處理使它可以處理大併發請求,同時脫離多線程以及鎖機制避免不必要的性能開銷;
  • Haproxy免費、開源、穩定,同時在性能尚有加大的提升,同時,實現了不同的存儲方式以及路由策略。
4、LVS、Keepalived、HAProxy的異同和各自擅長的領域;
  • LVS與HAProxy比較類似,實現的是負載均衡機制,在負載均衡的機制下實現了一定的策略,同時,都實現了一定的轉發機制,同時構建了一定的轉發規則以及傳輸方式;同時,LVS由於存在於內核中,所以在進行底層的解析時與轉發時存在一定的優勢,而Haproxy在應用性方面、轉發規則方面更爲靈活,所以LVS對系統級別的負載均衡能力較強一些,而HAProxy更容易完成應用級別的靈活配置;
  • Keepalived與HAProxy從某種意義上都實現了一定的容錯性,keepalived實現一定的應用檢測判斷出故障後進行相應的策略,HAProxy也會對後端節點進行輪詢從而即使剔除異常服務程序,然而Keepalived基於ip的轉換服務,在發生異常時進行ip的動態綁定,從而實現高可用,而haproxy只是將後端的節點踢出,所以keepalived更適於進行雙擊熱備,而haproxy更適於相同類型服務器的動態判斷,當然爲了保證HAProxy的高可用也可以對它進行keepalived。
  • LVS與HAProxy一樣主要進行負載均衡,然而對後端的判斷稍微少弱一些,所以經常使用LVS+Keepalived進行綜合使用,同樣可以完成主備LVS的自動切換。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章