服務器負載均衡和客戶端負載均衡

Ngnix是負載均衡分廠棒的實現方式,之一!可是面試的時候面試官每每但願可以經過一個螺絲釘可以牽連出整個車間,若是單單回覆Ngnix,想經過面試可能還欠些火候。
負載均衡概念

是指單臺服務器性能達到極限時經過服務器集羣來橫向增長系統的吞吐量和性能。一說負載均衡咱們想到的就是Ngnix,不和否定,Ngnix是負載均衡分廠棒的實現方式,之一!可是面試的時候面試官每每但願可以經過一個螺絲釘可以牽連出整個車間,若是單單回覆Ngnix,想經過面試可能還欠些火候。linux

服務器負載均衡和客戶端負載均衡服務器負載均衡和客戶端負載均衡

服務器負載均衡

服務器負載均衡就是咱們平時說的負載均衡,是指在服務器上游作服務分發,經常使用的方式有一下幾種:面試

一、DNS域名解析負載均衡;假設咱們的域名指向了多個IP地址,當一個域名請求來時,DNS服務器機進行域名解析將域名轉換爲IP地址是,在1:N的映射轉換中實現負載均衡。DNS服務器提供簡單的負載均衡算法,但當其中某臺服務器出現故障時,通知DNS服務器移除當前故障IP。
二、反向代理負載均衡;反向代理只值對服務器的代理,代理服務器接受請求,經過負載均衡算法,將請求轉發給後端服務器,後端服務返回給代理服務器而後代理服務器返回到客戶端。反向代理服務器的優勢是隔離後端服務器和客戶端,使用雙網卡屏蔽真實服務器網絡,安全性更好,相比較於DNS域名解決負載均衡,反向代理在故障處理方面更靈活,支持負載均衡算法的橫向擴展。目前使用很是普遍。固然反向代理也須要考慮不少問題,好比單點故障,集羣部署等。
三、IP負載均衡;咱們都知道反向代理工做到HTTP層,自己開銷相對大一些,對性能有必定影響,LVS-NAT是一種衛浴傳輸層的負載均衡,它經過修改接受的數據包目標地址的方式實現負載均衡。Linux2.6.x之後版本內置了IPVS,專一用於實現IP負載均衡,故而在Linux上IP負載均衡使用很是普遍。LVS-DR工做在數據鏈路層,比LVS-NAT更霸道的時候它直接修改數據包的MAC地址。LVS-TUN——基於IP隧道的請求轉發機制,將調度器收到的IP數據包進行封裝,轉交給服務器,而後服務器返回數據,經過調度器實現負載均衡。這種方式支持跨網段調度。總結一下,LVS-DR和LVS-TUN都適合響應和請求不對稱的Web服務器,如何從它們中作出選擇,取決於你的網絡部署須要,由於LVS-TUN可具備跨地域性,有相似這種需求的,就應該選擇LVS-TUN。

服務器負載均衡和客戶端負載均衡服務器負載均衡和客戶端負載均衡

客戶端負載均衡

相比較服務器負載均衡而言,客戶端負載均衡是一個很是小衆的概念,可是面試在問道負載均衡相關知識的時候卻會刻意瞭解候選人的知識廣度。客戶端負載均衡是在spring-cloud分佈式框架組件Ribbon中定義的。咱們在使用spring-cloud分佈式框架時,同一個service大機率同時啓動多個,當一個請求奔過來時,那麼這多個service,Ribbon經過策略決定本次請求使用哪一個service的方式就是客戶端負載均衡。在spring-cloud分佈式框架中客戶端負載均衡對開發者是透明的,添加@LoadBalanced註解就能夠了。客戶端負載均衡和服務器負載均衡的核心差別在服務列表自己,客戶端負載均衡服務列表在經過客戶端維護,服務器負載均衡服務列表由中間服務單獨維護。
經過對以上知識的理解,你們可以對負載均衡有的較爲全面的認識,下來我再簡單的和麪試官聊一聊常見的負載均衡算法:算法

隨機,經過隨機選擇服務進行執行,通常這種方式使用較少;
輪訓,負載均衡默認實現方式,請求來以後排隊處理;
加權輪訓,經過對服務器性能的分型,給高配置,低負載的服務器分配更高的權重,均衡各個服務器的壓力;
地址Hash,經過客戶端請求的地址的HASH值取模映射進行服務器調度。
最小連接數;即便請求均衡了,壓力不必定會均衡,最小鏈接數法就是根據服務器的狀況,好比請求積壓數等參數,將請求分配到當前壓力最小的服務器上。
其餘若干方式。
相關文章
相關標籤/搜索