小編的話
“品高公開課”系列文章意在分享技術牛人的知識干貨,和大家一起交流學習云知識,每期主題都不一樣喲!期待各位讀者在文后發表留言,來一場技術上的交流和思想上的碰撞!本期品高公開課由吳炯輝帶來“如何實現高性能負載均衡”的技術分享。
分享嘉賓
吳炯輝,目前就任品高云架構產品部的軟件開發工程師。專注于SDN開發和云網絡安全領域,擁有多年網絡程序開發經驗。15年開始轉向SDN方向的研究,主要負責SDN和云網絡安全的開發任務。
分享正文
負載均衡提供了一種廉價有效透明的方法,以便擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡處理能力、提高網絡的靈活性和可用性。
而在云網絡中,對負載均衡的需求是大量存在的,因此各個云廠商都對應其產品開發出不同的負載均衡器。
這里,我們品高也因應這個大環境開發出一種具有一定顛覆性的負載均衡器。在正式介紹品高云網絡負載均衡器之前,我們先看看傳統上比較常用的負載均衡部署方法。
代理式負載均衡:
在負載均衡器的發展歷史上,代理式負載均衡器是一種比較常用也是最早出現的基于代理服務器軟件實現的一種代理方式。
它是一種雙向代理的負載均衡器,好處是通用容易理解并且配置簡單成熟,后排機器不需要任何操作。但又往往因為雙向的流量都需要通過負載均衡器處理,所以這種方式的負載均衡,通常都需要一個性能極其優秀的機器作為負載均衡器,不然很可能會成為這個網絡中的性能瓶頸位。
LVS-DR模式負載均衡:
LVS-DR模式負載均衡器的工作原理是:客戶端發送請求到負載均衡器的VIP,然后通過負載均衡處理后到后排機器,后排機器收到請求后,直接回復到客戶端而非再次通過負載均衡器。
這樣解決了來回雙向流量都要經過代理機器的問題,但使用LVS的不足是負載均衡器和后排服務器都需要配置VIP。綜合上來說,這種模式的負載均衡在性能上有很大的提升。
品高云網絡負載均衡:
在介紹完兩個傳統的負載均衡器后。我們正式介紹一下品高云網絡負載均衡器,我們的均衡器基于SDN上,吸收了LVS-DR模式——高效低成本特性的負載均衡器。屏棄了VIP的配置,同時支持Keepalived等常用配備,也可選擇配備專用的品高WAF防火墻作為安全的保證。
品高云網絡負載均衡工作原理:
那么我們的負載均衡器是怎樣工作的呢?我們來具體一點說說。
當客戶端訪問負載均衡器時,SDN控制器會配置正向的流表,讓數據包送達負載均衡器,同時SDN控制器會配置后排機器訪問客戶端的流表,以達到當后排機器可以正常回包到客戶端的目的。
那為什么不讓后排機器訪問客戶機時才配置流表?正常來說,SDN控制器會在有新的數據包到達,才會配置一條讓數據包通過的流表到物理節點(NC)。
品高云是單向通過負載均衡器,當后排機器要響應請求去查找客戶端MAC地址時,如果負載均衡器和后排機器不是同一控制器管理的話,不能快速查找到MAC地址,這樣就違背了高效的特點了。
綜合情況,品高云是讓后排機器訪問客戶端的流表在客戶端發送請求時就配置完畢。
六大亮點
好了,說完了品高負載均衡器的一些工作原理和技術細節之后。我們來談談我們的品高負載均衡器有究竟具有了哪些顛覆性的亮點。
這些亮點是品高負載均衡器的價值所在,對于用戶來說,它可以得到與使用其他負載均衡所沒有的愉快體驗。
免配置:
免配置是針對LVS來說的,即后排機器免除了配置,節省用戶的培訓與時間成本。
免VIP:
免VIP是針對LVS和Keepalived來說的,即免除了LVS頭機和后排機器的VIP??梢越档驮俅钨徺I公有IP的成本。
高性能:
性能高低是判斷負載均衡器是否值得使用的重要指標。品高云可以滿足絕大部分想用低成本就獲得高效的用戶的要求。
這里列舉了一下用Nginx、Apache和品高負載均衡器作為均衡器的測試數據。很明顯的是品高負載均衡器的處理能力,隨著客戶端的并發數上升而線性上升。
高可用:
品高負載均衡器配備免VIP高可用特性,在有一臺均衡器當機之后可以快速響應達到無縫交替,用戶并無感知。
彈性:
彈性是指即時添加后排機器即時可用,擴容方便。傳統的負載均衡器如果要添加一臺后排機器需要重新編寫配置文件,而且必須重新啟動應用。而品高負載均衡器則無需這些操作,避免消耗配置時間。
安全:
品高負載均衡器可選擇配備專用的品高WAF。針對SQL注入、XSS危險字段、敏感字段、自定義規則都可以用很好的防護功能。
其他云廠商負載均衡器介紹
說完了我們的品高負載均衡器的亮點之后??赡芪覀冞€想知道其他云廠商的負載均衡器是怎樣的。
所以我們還分別測試了阿里云和青云的負載均衡器,看看它們的工作狀況是如何的。
我們在他們的云平臺上同樣創建兩臺2核2G內存的后排機器,一臺負載均衡器和兩臺2核2G內存的測試客戶端。
也同樣使用了autobench和ab工具,對負載均衡器進行并發測試和性能壓力測試得出一些數據。
阿里云負載均衡器:
從下面第一張表中,我們可以看到,阿里云的負載均衡器的并發處理能力到7000并發數時,就開始處于一個峰值位置,直到21000并發數時,才開始不平穩而且急速衰減。
而第二張表中,我們可以看到300000個包的處理總耗時是52秒多,而且90%的包的處理時間都在319ms內。
這樣一個數據是一個不錯的數據,可以看出阿里云的負載均衡器的處理能力還是不錯的。
青云負載均衡器:
而青云在下面第一張表中,我們可以看到負載均衡器的并發處理能力到2000時便到了高峰,到5000的時候就一直保持在400多個實際并發處理。
而第二張表中,我們可以看到300000個包的處理總耗時是86秒多,90%的包的處理時間都在951ms內。
可以看出青云相對于阿里云的負載均衡器的處理能力不怎么樣,客戶請求處理比較慢,并發處理能力不足。
歡迎大家一起來交流!
想提出問題的同學們,可以在右下方“寫留言”,分享嘉賓會熱情并且耐心地進行解答噢!
你想和更多志同道合的技術大咖一起交流嗎?你想收聽每周的“品高微信群公開課”的直播嗎?
長按識別以下二維碼關注“品高云計算”微信公眾號,回復“公開課”,品高公開課的最新咨詢、往期精彩回顧都在這里!