上面有一篇文章說windows第七層負載均衡,此次講講第四層負載均衡html
TCP/IP協議族,第七層是應用層,第四層是傳輸層。第四層負載均衡主要經過IP進行轉化。算法
一些優秀的第四層負載均衡軟件,速度能夠接近硬件負載均衡的效率。固然,論速度仍是人家硬件的快一點點,畢竟人家那價格擺在那裏,一臺F5,十幾萬,幾十萬,上百萬不等。windows
第四層重與第七層相比:優秀就是速度快,能感知集羣服務器的狀態。缺點就是不能感知應用層軟件的狀態,好比IIS站點掛掉,可是若是服務器沒有掛掉,轉化流量用繼續流入該服務器。api
如今不少的第四層負載均衡軟件,我是說LINUNX服務器下。若是你使用了Windows,我仍是建議大夥吃人家的全家桶吧。性能確定不能最大化。可是論穩定性,維護性仍是全家桶好使,省心,省力。服務器
若是,你購買了微軟的正版系統,你還能夠一個電話,讓人家工程師幫你解決問題。前提是,你得用的是全家桶。網絡
常見的第四層負載均衡軟件:LVS,NLB,還有其它,一時想不起來了,懶得查了。負載均衡
下面講講怎麼安裝NLB,固然我使用的是帶GUI的操做系統,通常狀況LINUX的是不裝GUI的,可是window的黑框我尚未習慣,還不會用,就先用帶GUI的吧post
安裝NBL功能性能
首先點服務管理器。測試
一直點「下一步」,直到勾上這個
安裝成功。
每一臺參與NLB的服務器,都須要安裝。這跟ARR不同,ARR只須要在轉發服務器上面安裝便可。
這裏做爲演示例子,就給三臺服務器裝上NLB吧
分別是
192.168.99.8 192.168.99.10 192.168.99.11
工做原理
全部請求會分發到每一臺NLB服務器,而後NLB服務器根據算法處理本身那一份請求。
那麼全部請求是怎麼分發給每一臺服務器暱,由於他們有一個公共的IP。也是就說,每臺服務器有兩個IP。
是的,每電腦能夠有多個IP地址。
高級選項中,能夠手動添加多個IP地址。
搭建集羣
打開網絡負載平衡管理器,新建集羣
一直點「下一步」,直到完成。
192.168.99.10,192.168.99.20的服務器分別按下步驟操做。
一直點「下一步」,直到完成。
集羣部署完畢。
咱們查看IP,你發現,多一個公共IP,192.168.99.20 這個就是羣集的IP。
搭建好以後,咱們就走一波試試,試跑成功以後,再來說講一些細節配置吧
首先IIS要作一些設置,由於咱們將使用公共IP進行訪問,就是192.168.99.20
訪問http://192.168.99.20/api/home/GetUserChat
成功返回。
壓力測試
老規則,如今用VS2017進行壓力測試,完事以後,講點細節配置這事就算完成啦。
測試成功,可是問題也是至關明顯
第一,數據的確廣發給每一個服務器,咱們能夠看,接收的數據大小都是同樣的5.4Mbps
第二,發送的數據大小卻徹底不同,這說明處理不同。咱們能夠明顯看到,192.168.99.10這臺服務器,承擔了大部分的工做。CPU上升到94%,發送數據包也達到1.5Mbps。
細節配置
很明顯集羣配置不合適。下面咱們來說講細節細置
集羣操做模式:
單播:全部節點服務器的MAC都會被改爲集羣MAC,發送數據的時候源MAC將變成集羣MAC。缺點:交換機的MAC表沒法綁定該MAC歸屬那個端口,全部數據包都進行廣播,造流量負擔。全部節點服務器具備相同MAC,沒法相通信。也就是說,集羣節點,具備相同的IP和相同MAC地址。
多播:不會修改節點服務器的MAC,而是爲專節點服務器添加多一個集羣MAC,節點之間能夠經過專用IP進行相互通訊。
單網卡多播,雙網卡單播。雙網卡能夠設置內網網卡成爲專用IP,解決單播節點不能相互通訊問題。
集羣端口規則:
篩選模式:
多臺主機:全部數據由多臺服務器處理。
單個主機:全部數據由一臺服務器處理,根據優先級選出服務器。
禁用此端口範圍:禁止這個端口的數據,進行處理。
多臺主機模式下,相關性:
無:由負載均衡器根根算法處理,基本上請求平均分配。
單一:同一個客戶端的請求,歸屬原來的處理的服務器。
網絡:根據IP的C類地址範圍來決定分配。也就是同一網段的請求,會分配某一服務器上。
優先級:集羣中全部轉發根據端口規則進行處理,若是不符合端口規則,將統一由優先級最小的服務器進行處理。
爲何咱們開始時候,192.168.99.10承受大量的工做,由於端口規則沒有設置好,咱們如今從新設置一下端口規則,再來測試一下吧。
以前默認設置
從新設置以後的配置
好,咱們從新跑一趟壓力
網絡接受和發送比較平等。
每一個服務器接受的請求數,大概相等。
每秒處理150個。與服務器數據相吻合。
負載均衡基本達到與預期效果一致。
NLB集羣測試完畢。