接口并行壓力的解決方案大致分為三部分:
1. 通過壓力測試际邻,找到哪部分壓力過大,通過代碼優(yōu)化的方式逐步解決。(略)
2. 通過硬件沿癞,接口分布在多臺服務器上,通過分而治之的思想解決矛渴。
3. 通過軟件技術椎扬,做一個負載均衡集群。
推薦方案:
Keepalived+LVS+Nginx負載均衡之高可用
?
Keepalived:Keepalived是分布式部署系統(tǒng)解決系統(tǒng)高可用的軟件具温,結合LVS(Linux Virtual Server)使用蚕涤,其功能類似于heartbeat,解決單機宕機的問題铣猩。
?
Nginx:負載均衡問題揖铜。
?
系統(tǒng)整體設計是采用Nginx做負載均衡,若出現(xiàn)Nginx單機故障达皿,則導致整個系統(tǒng)無法正常運行天吓。針對系統(tǒng)架構設計的高可用要求贿肩,我們需要解決Nginx負載均衡出現(xiàn)單機故障時,系統(tǒng)正常運行的需求龄寞。所以系統(tǒng)架構引入Keepalived組件尸曼,實現(xiàn)系統(tǒng)高可用。
?Keepalived技術原理(點擊右邊的小三角可以合并展開)
keepalived是以VRRP協(xié)議為實現(xiàn)基礎的萄焦,VRRP全稱Virtual Router Redundancy Protocol控轿,即虛擬路由冗余協(xié)議。通過VRRP協(xié)議結合LVS拂封,對組群服務器監(jiān)控情況茬射,若master出現(xiàn)宕機情況,則將VIP漂移到backup機上冒签。實現(xiàn)了分布式系統(tǒng)高可用在抛。可以理解為:keepalived是LVS的管理軟件萧恕,根據(jù)監(jiān)控情況刚梭,將宕機服務器從ipvsadm移除掉。
負載均衡概述(點擊右邊的小三角可以合并展開)
通過服務器負載均衡的方式解決接口并發(fā)壓力票唆,通俗的來講朴读,多個服務器組成的這樣一個系統(tǒng),我們稱之為服務器均衡系統(tǒng)走趋。
負載均衡組成的方式:負載均衡的服務器(管理器)和被均衡的服務器集群(客戶機)衅金。
負載均衡管理器,是整個負載均衡的控制服務器(DR)簿煌,所有用戶的請求都要先經(jīng)過這臺服務器氮唯,然后由此服務器根據(jù)各個實際處理服務器狀態(tài)將請求具體分配到某個實際處理。
服務器中姨伟,用戶是感覺不到后端的服務器的惩琉,他們只看到當前這臺DR服務器。DR服務器只負責轉發(fā)和安裝相應的管理軟件夺荒,所以一般企業(yè)負載均衡服務器非常重要瞒渠,但是資源使用非常少,所以不必用非常高的配置來擔當負載均衡管理器般堆。
負載均衡分類:軟/硬件
軟件負載均衡解決方案是指在一臺或多臺服務器相應的操作系統(tǒng)上安裝一個或多個附加軟件來實現(xiàn)負載均衡在孝,它的優(yōu)點是基于特定環(huán)境,配置簡單淮摔,使用靈活,成本低廉始赎,可以滿足一般的負載均衡需求和橙。軟件解決方案缺點也較多仔燕,因為每臺服務器上安裝額外的軟件運行會消耗系統(tǒng)不定量的資源,越是功能強大的模塊魔招,消耗得越多晰搀,所以當連接請求特別大的時候,軟件本身會成為服務器工作成敗的一個關鍵办斑;軟件可擴展性并不是很好外恕,受到操作系統(tǒng)的限制;由于操作系統(tǒng)本身的Bug乡翅,往往會引起安全問題鳞疲。
硬件負載均衡解決方案是直接在服務器和外部網(wǎng)絡間安裝負載均衡設備,這種設備通常稱之為負載均衡器蠕蚜,由于專門的設備完成專門的任務尚洽,獨立于操作系統(tǒng),整體性能得到大量提高靶累,加上多樣化的負載均衡策略腺毫,智能化的流量管理,可達到最佳的負載均衡需求挣柬。負載均衡器有多種多樣的形式潮酒,除了作為獨立意義上的負載均衡器外,有些負載均衡器集成在交換設備中邪蛔,置于服務器與Internet鏈接之間澈灼,有些則以兩塊網(wǎng)絡適配器將這一功能集成到PC中,一塊連接到Internet上店溢,一塊連接到后端服務器群的內(nèi)部網(wǎng)絡上叁熔。
一般而言,硬件負載均衡在功能床牧、性能上優(yōu)于軟件方式荣回,不過成本昂貴。
部署方式:路由模式
負載均衡有三種部署方式:路由模式戈咳、橋接模式心软、服務直接返回模式。
路由模式部署靈活著蛙,約60%的用戶采用這種方式部署删铃;橋接模式不改變現(xiàn)有的網(wǎng)絡架構;服務直接返回(DSR)比較適合吞吐量大特別是內(nèi)容分發(fā)的網(wǎng)絡應用踏堡。約30%的用戶采用這種模式猎唁。
服務器的網(wǎng)關必須設置成負載均衡機的LAN口地址,且與WAN口分屬不同的邏輯網(wǎng)絡顷蟆。因此所有返回的流量也都經(jīng)過負載均衡诫隅。這種方式對網(wǎng)絡的改動小腐魂,能均衡任何下行流量。
應用場景
在當業(yè)務系統(tǒng)服務器無法支撐當前的業(yè)務量時逐纬,用戶可以選擇更高性能的服務器蛔屹。但更為合理的做法是通過在既有業(yè)務服務器基礎上,增量的方式增加相同功能的服務器豁生,將計算任務分攤到后臺多臺較低配置的服務器處理兔毒,每臺服務器都可以響應服務請求。實現(xiàn)合理安排客戶請求并加快了請求相應速度甸箱,來提高用戶體驗育叁。而用戶僅感受到是一臺高性能服務器在提供服務。
負載均衡硬件
名稱參數(shù)優(yōu)勢
F5 BIG-IP LTM 3900處理器:單 CPU 基本內(nèi)存:8GB 硬盤:500GB
端口:8 個千兆端口摇肌,4
? 個可選千兆光纖端口
全面的負載均衡擂红,應用狀態(tài)監(jiān)控,高可用性和交易保 障围小,廣域流量管理器昵骤,鏈路控制器;智能應用交換肯适,智能壓縮变秦,靈活的第
? 7 層速率
整形
深信服 AD-2000吞吐性能:2Gbps
網(wǎng)口配置:6 個千兆電口、2 個千兆光口尺寸:標準 2U
電源:單電源(可選配冗余電源)
包含鏈路負載均衡框舔、服務器負載均衡蹦玫、全局負載均衡、商業(yè)智能分析功能刘绣,以及緩存樱溉、壓縮、SSL 卸載纬凤、TCP 連接復用等優(yōu)化特性福贞。支持單邊加速功能,提高低質(zhì)量網(wǎng)絡環(huán)境下遠端用戶的訪問速
度
Array APV 3520網(wǎng)絡端口配置:12 或 16 個 10/100/1000Base-
TX停士,4 個 SFP 插槽 控制端口:Male DB9 系列
(RS232)端口
背板帶寬:48G/52G 4 層吞吐量:4G
交流電源:100-240VAC挖帘,63-
47Hz,冗余電源恋技,熱插拔
梭子魚 Model
340(BSFI340-e3
每秒連接 50,000CPS,支持多達 35 臺服務器,最大并發(fā)連接數(shù) 2,000,000,SSL 加速 150TPS,應用程序吞吐 1000M,快速 4-7 層負載均衡,web 管理界面,強大 IP 保持能力,7 層 cookie 保持,支持
TCP/UDP 負載均衡
提供路由及橋接模式,強大的
DDoS 防護,靈活的計劃選擇, 服務訪問控制表,應用程序智能
FoundryServerIronXL(FCSLB24)24-端口 10/100Base-TX(RJ-45)ServerIronXL,具有
1 個擴展插槽拇舀,集成的 2-7
? 層交換
高可用的服務器負載均衡,強大的內(nèi)容交換,可根據(jù) URL,
Cookie 和 SSL Session ID 交換,透明緩存交換,高性能
VPN/Firewall 負載均衡,鏈路
負載均衡
負載均衡軟件
名稱說明優(yōu)點缺點
Nginx基于 Linux 的開源免費的負載均衡軟件, 適 用 于 中 小 型 的 Web 應用蜻底、Web 前端1.工作在網(wǎng)絡的 7 層之上骄崩,可針對
http 應用做一些分流的策略;
2.Nginx 對網(wǎng)絡穩(wěn)定性的依賴非常小刁赖;
3.以承擔高負載壓力且穩(wěn)定搁痛,在硬件不差的情況下一般能支撐幾萬次的并發(fā)量长搀,負載度比 LVS 相對小些宇弛;
4.可通過端口檢測到服務器內(nèi)部的故
障;可作為中層反向代理使用源请。
1.Nginx 僅能支持 http枪芒、
https 和
? Email 協(xié)議,這樣就在適用范圍上面小些谁尸。
2.對后端服務器的健康檢查舅踪,只支持通過端口來檢測,不支持通過 url 來檢測良蛮。不支持 Session 的直接保持抽碌,但能通過
ip_hash 來解決
LVS基于 Linux 的開源免費的負載均衡軟件, 大型網(wǎng)站或重要的服務决瞳,且服務器比較多時 货徙, 可 以 考 慮 用 LVS。后端采用MySQL 數(shù)據(jù)庫一主多從和讀寫分離皮胡,采用
? LVS+Keepalived 的架構痴颊。
1.抗負載能力強,是工作在網(wǎng)絡 4 層之上僅作分發(fā)之用屡贺,沒有流量的產(chǎn)
生蠢棱,對內(nèi)存和 cpu 資源消耗比較低。
2.配置性比較低甩栈,大大減少了人為出錯的幾率泻仙。
3.工作穩(wěn)定,其本身抗負載能力很強量没,自身有完整的雙機熱備方案玉转,如LVS+Keepalived
? 。?????????????????????????? 4.無流量允蜈,LVS 只分發(fā)請求冤吨,而流量并不從它本身出去,這點保證了均衡
器 IO 的性能不會收到大流量的影響饶套。
5.應用范圍較廣漩蟆,LVS 工作在
? 4 層, 它幾乎可以對所有應用做負載均衡妓蛮, 包括 http怠李、數(shù)據(jù)庫、在線聊天室等
等。
1.軟件本身不支持正則表達式處理捺癞,不能做動靜分離夷蚊;而現(xiàn)在許多網(wǎng)站在這方面都有較強的需求, 這個是
Nginx/HAProxy+Keepalived
的優(yōu)勢所在髓介。
2.如果是網(wǎng)站應用比較龐大的話惕鼓,
LVS/DR+Keepalived 實施起來就比較復雜了,特別后 面 有 Windows Server 的機器的話唐础,如果實施及配置還有維護過程就比較復雜了箱歧,相對而言,
Nginx/HAProxy+Keepalived
就簡單多了一膨。
Haproxy基于 Linux 的開源免費的負載均衡軟件呀邢, 適用于 Web 前端1.支持虛擬主機。
2.支持
? Session 的保持豹绪,Cookie 的引導价淌;同時支持通過獲取指定的 url 來檢測后端服務器的狀態(tài)。
3.比 Nginx 有更出色的負載均衡速度瞒津,在并發(fā)處理上也優(yōu)于 Nginx蝉衣。
4.支持 TCP 協(xié)議的負載均衡轉發(fā)。
5.HAProxy 負載均衡策略非常多仲智。
針對域名买乃、目錄結構,它的正則規(guī)則沒有 nginx 比
HAProxy 強大和靈活