系統流量大關於系統負載均衡的做法


系統流量大了,訪問卡頓,升級CPU,內存,RDS,優化程序架構的同時,也要考慮到如何通過多台服務器負載來分解訪問流量的壓力,這個通過硬件均衡分解壓力的方式也就是負載均衡了,下面我們基於阿里雲的服務來做負載均衡。我們的客戶伙伴的系統也會遇到這種流量暴增,在提升擴容CPU內存RDS的同時,就要考慮通過負載均衡來處理系統訪問卡頓了,我以為阿里雲的產品來建立解決方案分享給大家

什么叫負載均衡呢?

負載均衡是一項基本的網絡服務,主要是為了解決系統運行的並發壓力,增強網絡處理能力,減輕單個設備的資源壓力,提高整體服務性能。客戶端的流量將首先到我們預設的達負載均衡服務器,你可以理解為流量入口有個調度員,他來合理分配這個流量該去哪里。負載均衡服務器(調度員)通過某種調度算法將流量分配到不同的應用程序服務器。同時,負載均衡服務器還將在應用程序服務器上執行定期運行狀況檢查。當發現故障節點時,它將動態從應用程序服務器群集中刪除節點,以確保應用程序的高可用性。

阿里雲的負載均衡產品叫CLB,我們就以CLB簡寫來做講解,一共有以下幾個配置步驟

 

一、規划實例地域
在選擇地域時,請注意:

為了減少延遲並提高下載速度,建議選擇離您最近的地域,並且確保選擇的地域與ECS實例在同一個地域。
為了提供更加穩定可靠的服務,CLB已在大部分地域提供主備可用區,實現同地域下的跨機房容災。建議您選擇提供主備可用區的地域。
CLB默認不支持跨地域部署,因此應選擇與后端ECS實例相同的地域。
選擇實例的網絡類型
CLB提供面向公網和私網的負載均衡服務:

如果您需要使用負載均衡分發來自公網的請求,請選擇創建公網CLB實例。
公網CLB實例提供一個公網IP,用來接收來自互聯網的請求。

對於公網CLB實例,您還需要選擇實例的計費方式:
按流量計費:適用於波峰波谷效應明顯的業務。
按帶寬計費:適用於帶寬較為平穩的業務。
如果您需要使用負載均衡分發來自私網的請求,請選擇創建私網CLB實例。
私網CLB實例僅提供阿里雲私網IP,只能通過阿里雲內部網絡訪問該負載均衡服務,無法從互聯網訪問。

二、選擇實例規格
CLB提供多種實例規格供您選擇:

對於按量計費實例,建議您直接選擇可以買到的最大規格,這樣可以保證業務的靈活性(彈性),且不會讓您額外多付出成本。但如果您的業務量達不到超強型I(slb.s3.large),建議您設置合理的彈性上限,例如選擇高階型II(slb.s3.medium)。
對於包年包月實例,您需要評估您的實際業務量,然后選擇一個較合適的規格。評估業務量,主要參考以下幾個原則:
如果是四層監聽,關注的重點是長連接的並發連接數,那么最大(並發)連接數應當作為一個關鍵指標來參考。根據不同的業務場景,您需要預估負載均衡需要承載的最大並發連接數,並選擇相應的規格。
如果是七層監聽,關注的重點是QPS的性能,QPS決定了一個七層應用系統的吞吐量。對QPS進行預估,初步選定一個規格后,在業務壓測和實測過程中對規格進行微調。
結合實際業務流量的走勢、峰值情況,對性能規格進行更加精確的選取。


三、選擇協議類型
CLB提供基於四層(TCP協議和UDP協議)和七層(HTTP協議和HTTPS協議)的負載均衡:

四層監聽將請求直接轉發給后端服務器,不會修改報頭。客戶端請求到達CLB后,CLB根據監聽中配置的后端端口與后端服務器建立TCP連接。
七層監聽原理上是反向代理的一種實現。客戶端請求到達CLB后,CLB與后端服務器建立TCP連接,即再次通過新TCP連接HTTP協議訪問后端服務器,而不是直接轉發報文到后端服務器。
七層監聽比四層監聽在底層實現上多了一個Tengine處理環節。此外,客戶端端口不足、后端服務器連接過多等場景可能導致七層服務性能不高,如果您對性能有很高的要求,建議您選擇四層監聽。

四、准備后端服務器
在使用負載均衡服務前,您需要創建ECS實例並部署相關應用,然后將ECS實例添加到負載均衡實例中來處理轉發的客戶端請求。

創建ECS時,請注意:
ECS實例的地域和可用區
確保ECS實例的地域和CLB實例的地域相同,並且ECS實例與CLB實例屬於同一個VPC。此外,建議您將ECS部署在不同的可用區內,提高可用性。創建ECS實例,請參見使用向導創建實例。

本教程中,在華東1地域創建了兩個ECS實例,為了便於辨識,將實例分別命名為ECS01和ECS02,如下圖所示

 

五、應用配置
本教程中,分別在ECS01和ECS02兩個實例上使用Apache搭建了兩個靜態網頁,如下圖所示。
在瀏覽器中輸入ECS01實例綁定的彈性公網IP地址:

 

 在瀏覽器中輸入ECS02實例綁定的彈性公網IP地址:

 

在ECS上部署好應用后,不需要再進行特別的配置。但如果您要配置一個四層監聽(TCP協議或UDP協議),並且ECS使用的是Linux系統,確保ECS實例上/etc/sysctl.conf目錄下net.ipv4.conf文件中的以下三個參數的值為零:

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0

六、創建實例

本文介紹如何創建一個傳統型負載均衡CLB公網實例。實例創建后,系統會自動分配一個服務地址,您可以將您的域名解析到該實例的服務地址。

背景信息
一個CLB實例可以添加多個監聽和后端服務器。
操作步驟
登錄傳統型負載均衡CLB控制台。
在實例管理頁面,單擊創建傳統型負載均衡。
在實例購買頁面,根據需要配置CLB實例。
本教程中的CLB實例配置如下:
付費模式:選擇一種付費模式。本示例中選擇按量付費。
地域和可用區:由於CLB默認不支持跨地域部署,因此創建CLB實例時應選擇與ECS實例相同的地域。本教程選擇華北1(青島)。
可用區類型:CLB在大部分地域都開通了多可用區功能,實現同城容災。當主可用區的機房故障、不可用時,CLB在非常短的時間內(大約30秒)切換到另外一個備可用區的機房恢復服務能力。當主可用區恢復時,CLB同樣會自動切換到主可用區的機房提供服務。
本教程中的主可用區為華北1 可用區C,備可用區為華北1 可用區B。

實例名稱:輸入實例名稱,或者使用系統自動創建的實例名稱。
實例規格:選擇簡約型(slb.s1.small)。該規格最大可以支持連接數為5000,新建連接數(CPS)為3000,每秒查詢數 (QPS)為1000。
實例類型:選擇公網。
IP版本:選擇IPv4。
計費方式:選擇按使用流量計費。
數量:選擇1。
資源組:選擇默認資源組。
單擊立即購買。
在確認訂單頁面,選中我已閱讀並同意《負載均衡SLB(按量付費)服務協議》,然后單擊去支付。
您可以將域名解析到CLB實例的公網服務地址上提供服務。

 

七、配置實例

操作步驟

登錄傳統型負載均衡CLB控制台。
在實例管理頁面,找到目標實例,然后在操作列單擊監聽配置向導。
在協議&監聽配置向導,配置以下監聽信息,然后單擊下一步。

在后端服務器配置向導,選擇后端服務器類型。
本教程選擇默認服務器組,然后單擊繼續添加。
在我的服務器面板,選中已創建的ECS01和ECS02實例,單擊下一步。
配置權重,然后單擊添加。
權重越大轉發的請求越多,本教程保持默認值。
在默認服務器組頁簽下,配置后端協議端口,然后單擊下一步。
ECS實例上開放的用來接收請求的后端端口,在同一個負載均衡實例內可重復。本教程端口設置為80。
在健康檢查配置向導,配置健康檢查,然后單擊下一步。本教程保持默認值。
開啟健康檢查功能后,當后端某個ECS健康檢查出現問題時,負載均衡服務會將請求轉發到其它健康檢查正常的ECS上,而當該ECS恢復正常運行時,負載均衡會自動恢復它的請求轉發。
在配置審核配置向導頁簽,檢查配置信息,然后單擊提交。
單擊知道了,返回實例管理頁面,單擊刷新。
當后端ECS的健康檢查狀態為正常時,表示后端ECS可以正常處理負載均衡轉發的請求。

 

在瀏覽器中多次輸入負載均衡實例的服務地址,測試負載均衡服務。

 

八、設置A記錄域名解析

域名解析是域名和IP地址相互映射的分布式數據庫。阿里雲負載均衡支持將域名解析到負載均衡實例的公網服務地址上,使用戶更加方便地訪問互聯網。

背景信息
例如,您網站的域名為www.aliyun.com,運行在公網IP地址為192.0.XX.XX的ECS實例上。創建負載均衡實例后,系統分配的負載均衡實例的公網IP地址為198.51.XX.XX。您需要將ECS實例添加到負載均衡實例的后端服務器池,並將域名www.aliyun.com解析到198.51.XX.XX。建議您使用“A記錄解析”(即將域名解析到一個IP地址)即可。
操作步驟
登錄域名解析控制台。
在域名解析頁面,單擊添加域名。
在添加域名對話框輸入您的主機域名,然后單擊確定。
在域名解析頁面,找到目標域名,然后在目標域名的操作列單擊解析設置。
在解析設置頁面,單擊添加記錄。
在添加記錄面板配置以下信息完成A記錄解析配置,然后單擊確認。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM