總結: 基於MAC地址玩的是二層(虛擬MAC地址接收請求,而後再分配到真實的MAC地址),
基於IP地址玩的是三層(虛擬IP地址接收請求,而後再分配到真實的IP地址),
基於IP地址加端口玩的是四層(虛擬IP+端口接收請求,而後再分配到真實的服務器)
基於URL玩的是七層.(虛擬的URL或主機名接收請求,而後再分配到真實的服務器)瀏覽器
簡單理解四層和七層負載均衡:
1.所謂四層就是基於IP+端口的負載均衡;七層就是基於URL等應用層信息的負載均衡;同理,還有基於MAC地址的二層負載均衡和基於IP地址的三層負載均衡。 換句換說,二層負載均衡會經過一個虛擬MAC地址接收請求,而後再分配到真實的MAC地址;三層負載均衡會經過一個虛擬IP地址接收請求,而後再分配到真實的IP地址;四層經過虛擬IP+端口接收請求,而後再分配到真實的服務器;七層經過虛擬的URL或主機名接收請求,而後再分配到真實的服務器。安全
2.所謂的四到七層負載均衡,就是在對後臺的服務器進行負載均衡時,依據四層的信息或七層的信息來決定怎麼樣轉發流量。 好比四層的負載均衡,就是經過發佈三層的IP地址(VIP),而後加四層的端口號,來決定哪些流量須要作負載均衡,對須要處理的流量進行NAT處理,轉發至後臺服務器,並記錄下這個TCP或者UDP的流量是由哪臺服務器處理的,後續這個鏈接的全部流量都一樣轉發到同一臺服務器處理。七層的負載均衡,就是在四層的基礎上(沒有四層是絕對不可能有七層的),再考慮應用層的特徵,好比同一個Web服務器的負載均衡,除了根據VIP加80端口辨別是否須要處理的流量,還可根據七層的URL、瀏覽器類別、語言來決定是否要進行負載均衡。舉個例子,若是你的Web服務器分紅兩組,一組是中文語言的,一組是英文語言的,那麼七層負載均衡就能夠當用戶來訪問你的域名時,自動辨別用戶語言,而後選擇對應的語言服務器組進行負載均衡處理。服務器
3.負載均衡分爲L4 switch(四層交換),即在OSI第4層工做,就是TCP層啦。此種Load Balance不理解應用協議(如HTTP/FTP/MySQL等等)。例子:LVS,F5。另外一種叫作L7 switch(七層交換),OSI的最高層,應用層。此時,該Load Balancer能理解應用協議。例子: haproxy,MySQL Proxy。網絡
第七層負載均衡優勢表如今以下幾個方面:
經過對HTTP報頭的檢查,能夠檢測出HTTP400、500和600系列的錯誤信息,於是能透明地將鏈接請求從新定向到另外一臺服務器,避免應用層故障。
可根據流經的數據類型(如判斷數據包是圖像文件、壓縮文件或多媒體文件格式等),把數據流量引向相應內容的服務器來處理,增長系統性能。
能根據鏈接請求的類型,如是普通文本、圖象等靜態文檔請求,仍是asp、cgi等的動態文檔請求,把相應的請求引向相應的服務器來處理,提升系統的性能及安全性。
第七層負載均衡受到其所支持的協議限制(通常只有HTTP),這樣就限制了它應用的普遍性,而且檢查HTTP報頭會佔用大量的系統資源,勢必會影響到系統的性能,在大量鏈接請求的狀況下,負載均衡設備自身容易成爲網絡總體性能的瓶頸。負載均衡