在開源PaaS Rainbond中,咱們對各類應用層協議匹配不一樣的網絡治理插件,以實現7層負載均衡(layer 7 load balancing),例如HTTP、gRPC、Redis等協議。緣由在於對於一些在線環境,咱們但願能夠對服務間調用實現熱更改或者更好的容錯,比方說A/B測試、灰度發佈等等,必需要在7層負載均衡上完成。git
那麼什麼是7層均衡,它跟4層負載均衡(layer 4 load balancng)有何不一樣?github
4層負載均衡在中間傳輸層執行,它處理消息的傳遞,但不考慮消息的內容。例如TCP是網絡上Hypertext Transfer Protocol(HTTP)流量的第四層協議。在這一過程當中,4層負載均衡會將網絡數據包轉發到上游服務器,但不會檢查數據包的內容,只能經過檢查TCP流中的前幾個包來作出有限的路由決策。服務器
7層負載均衡不一樣於4層負載均衡,它在高級應用層上執行,會處理每一個消息的實際內容。HTTP是網絡上網站流量的主要7層協議。7層負載均衡以比4層負載均衡更復雜的方式路由網絡流量,尤爲適用於基於TCP的流量(如HTTP)。7層負載均衡會終止網絡流量並讀取器中消息,它能夠根據消息內容(如URL或cookie)作出負載均衡決策。隨後,7層負載均衡與選定上有服務器創建新的TCP鏈接並將請求寫入服務器。微信
7層負載均衡比基於數據包的4層負載均衡更佔CPU,但不多會致使服務器性能降低。7層負載均衡可讓負載均衡器作出更明智的決策,並能夠對內容進行優化和更改,如壓縮、加密等等。7層負載均衡還能夠利用buffering來卸載上游服務器的慢速鏈接,從而提升性能。cookie
執行7層負載平衡的組件一般被稱爲反向代理服務器。網絡
舉個簡單的例子,假設用戶訪問高流量網站,在會話期間,他或她可能會請求靜態內容(例如圖像或視頻)、動態內容(例如新聞訂閱源)或者交易信息(例如訂單狀態)等等。7層負載平衡容許負載均衡器根據請求自己中的消息(如內容類型)來路由請求。也就是說,咱們能夠將對圖像或視頻的請求路由到存儲它的服務器,並進行高度優化以提供多媒體內容;能夠將諸如折扣價之類的交易信息請求路由到負責管理訂價的應用服務器。藉助7層負載平衡,網絡和應用程序架構師能夠建立高度優化的服務器基礎架構或應用交付網絡,在保障可靠性的同時進行有效擴展。架構
Rainbond是一款以應用爲中心的開源PaaS,由好雨基於Docker、Kubernetes等容器技術自主研發,可做爲公有云或私有云環境下的應用交付平臺、DevOps平臺、自動化運維平臺和行業雲平臺,或做爲企業級的混合雲多雲管理工具、Kubernetes容器管理工具或Service Mesh微服務架構治理工具。
試用Rainbond公有云負載均衡