學習負載均衡

?負載均衡,英文名Load Balance,作用是將操作分攤到多個執(zhí)行單元上執(zhí)行。隨著如今網絡流量的不斷增大,服務的負載均衡是必須的,這里就來講一講負載均衡的結構。 ???????

說到負載均衡,同學最容易想到的可能就是nginx了,但是nginx只是其中的一層,而負載均衡從我們發(fā)送一個請求時可能就開始了,下面是一個負載均衡流程: ???????從用戶發(fā)起一個請求,從DNS分流,到中間的反向代理,再到應用服務的分流等,經歷了一層有一層,達到了服務水平拓展的目的,以應對目前龐大的數(shù)據(jù)流量。


DNS分流 ???????

DNS功能即指域名系統(tǒng),在萬維網中,我們訪問他人服務,即是訪問他人ip,但是ip不便于記憶,此時域名系統(tǒng)就出現(xiàn)了。通過域名與ip的相互映射,我們可以不用記憶ip,而是通過域名去訪問目標服務,而DNS系統(tǒng)即是一個域名與ip地址相互映射的分布式數(shù)據(jù)庫,我們訪問域名是,經歷了以下步驟:?

?域名與ip之間有映射關系,但是大多數(shù)情況下卻不是一一對應的,我們可以將多個ip映射到同一個域名,因為用戶是通過域名去進行訪問的,具體訪問哪個地址,則有DNS服務器的映射記錄和一定的負載均衡算法來決定,用戶拿到具體ip后再去訪問,而這個過程對用戶來說完全是透明的,通過DNS分流完成了第一步的負載均衡:

?硬件分流 ??????

?通過硬件設備,在網絡流量進入服務之前進行流量的分流,通過各種策略,分散到不同的服務器。常見的如F5負載均衡器。?

?四層負載 ???????

四層負載主要是指OSI七層模型中,工作在第四次tcp層的負載均衡,主要是通過修改報文中的目標地址和端口,再加上一定的負載均衡策略,選擇最終處理的服務器,如lvs。由此可以想到,其實還有二層負載和三層負載,通過虛擬mac地址或者虛擬ip地址來接收請求然后再分流到真實的mac地址或者ip地址。這幾種負載方式都是不關心具體的上層協(xié)議,只負責修改數(shù)據(jù)的流向。?

?七層負載 ???????

七層負載也稱“內容負載”,是根據(jù)具體的應用層內容,更加智能的選擇具體內部服務。如更具請求的url信息等,選擇具體的應用服務器來進行相應處理,如nginx。 客戶端分流 ???????

前面的負載均衡除了DNS以外,都有一個點來分發(fā)具體的流量,我們稱為服務器分流。當用戶請求到達了真正的應用服務器以后,請求還會細分,而同一類的請求的服務可能還是集群,例如如今的微服務架構。這時可以使用應用框架來完成服務請求的分流,如dubbo以及springCloud的Ribbon組件等,這些由服務自己決定的分流方式稱為客戶端分流。

?數(shù)據(jù)層分流 ???????

在應用服務器的背后,是數(shù)據(jù)層,各種緩存以及持久化數(shù)據(jù)庫等。對于到達數(shù)據(jù)層的請求,我們也可以進行相應的負載均衡處理,如redis的主從讀寫分離集群、分片集群等,mysql的主從讀寫、分區(qū)分表分庫等。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 今日碎叨。 1/ 對不起,這條會得罪些朋友。 時??吹礁锌筝吥贻p人素質不行的言論,怒其不爭。罪名很多了,如沉溺享...
    2郎神閱讀 236評論 0 0
  • 34歲,我還是沒有像長輩們期待的那樣勤儉持家,還是沒能事業(yè)有成,還是沒有成為先生的賢內助…… 不管我是多么地不情愿...
    阿柴德拉莫爾閱讀 416評論 0 1
  • 雨一直下,片刻都沒有停歇;閃電與雷鳴,時刻的叫囂著:路旁的積水已經淹沒了我的腳踝,行人在路上艱難的前行,有些忐忑,...
    丫七羽閱讀 277評論 0 0
  • 想要的無非這么多: -鮮花 -溫馨的房子 -讓人滿足的食物 -偶爾一個人獨處 -好看的衣服 -出去走走的機會 -平...
    吳俐溫哪閱讀 537評論 2 0

友情鏈接更多精彩內容