摘要:三使用的高可用除了要實現網站的高可用,也就是提供多臺服務器用于發布相同的服務,添加負載均衡服務器分發請求以保證在高并發下各臺服務器能相對飽和的處理請求。
在關于高并發負載均衡一文中已經提到,企業在解決高并發問題時,一般有兩個方向的處理策略,軟件、硬件,硬件上添加負載均衡器分發大量請求,軟件上可在高并發瓶頸處:數據庫+web服務器兩處添加解決方案,其中web服務器前面一層最常用的的添加負載方案就是使用nginx實現負載均衡。
一、負載均衡的作用
1、轉發功能
按照一定的算法【權重、輪詢】,將客戶端請求轉發到不同應用服務器上,減輕單個服務器壓力,提高系統并發量。
2、故障移除
通過心跳檢測的方式,判斷應用服務器當前是否可以正常工作,如果服務器期宕掉,自動將請求發送到其他應用服務器。
3、恢復添加
如檢測到發生故障的應用服務器恢復工作,自動將其添加到處理用戶請求隊伍中。
二、Nginx實現負載均衡
同樣使用兩個tomcat模擬兩臺應用服務器,端口號分別為8080 和8081
1、Nginx的負載分發策略
Nginx 的 upstream目前支持的分配算法:
1)、輪詢 ——1:1 輪流處理請求(默認)
每個請求按時間順序逐一分配到不同的應用服務器,如果應用服務器down掉,自動剔除,剩下的繼續輪詢。
2)、權重 ——you can you up
通過配置權重,指定輪詢幾率,權重和訪問比率成正比,用于應用服務器性能不均的情況。
3)、ip_哈希算法
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個應用服務器,可以解決session共享的問題。
2、配置Nginx的負載均衡與分發策略
通過在upstream參數中添加的應用服務器IP后添加指定參數即可實現,如:
復制代碼
upstream tomcatserver1 {
server 192.168.72.49:8080 weight=3; server 192.168.72.49:8081; }
server {
listen 80; server_name 8080.max.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://tomcatserver1; index index.html index.htm; } }
復制代碼
通過以上配置,便可以實現,在訪問8080.max.com這個網站時,由于配置了proxy_pass地址,所有請求都會先通過nginx反向代理服務器,在服務器將請求轉發給目的主機時,讀取upstream為 tomcatsever1的地址,讀取分發策略,配置tomcat1權重為3,所以nginx會將大部分請求發送給49服務器上的tomcat1,也就是8080端口;較少部分給tomcat2來實現有條件的負載均衡,當然這個條件就是服務器1、2的硬件指數處理請求能力。
3、nginx其他配置
復制代碼
upstream myServer {
server 192.168.72.49:9090 down; server 192.168.72.49:8080 weight=2; server 192.168.72.49:6060; server 192.168.72.49:7070 backup;
}
復制代碼
1)down
表示單前的server暫時不參與負載
2)Weight
默認為1.weight越大,負載的權重就越大。
3)max_fails
允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤
4)fail_timeout
max_fails 次失敗后,暫停的時間。
5)Backup
其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。
三、使用Nginx的高可用
除了要實現網站的高可用,也就是提供n多臺服務器用于發布相同的服務,添加負載均衡服務器分發請求以保證在高并發下各臺服務器能相對飽和的處理請求。同樣,負載均衡服務器也需要高可用,以防如果負載均衡服務器掛掉了,后面的應用服務器也紊亂無法工作。 實現高可用的方案:添加冗余。添加n臺nginx服務器以避免發生上述單點故障。具體方案詳見下文:keepalive+nginx實現負載均衡高可用
四、總結
總結一點,負載均衡不論是各種軟件或硬件上的解決方案,主要還是將大量的并發請求按照一定的規律分發給不同的服務器處理,從而減少某臺服務器的瞬時壓力,提高網站的抗并發能力。nginx在負載均衡的應用之所以廣泛,筆者認為這歸功于它的靈活配置,一個nginx.conf文件解決大部分問題,不論是nignx創建虛擬服務器、nginx的反向代理服務器,還是本文介紹的nginx的負載均衡,幾乎都在這個配置文件中進行。服務器上只負責把nginx搭好,跑起來即可。而且它本身輕量級,不需要占用服務器太多資源就可以達到較好的效果,膩害。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40220.html
摘要:部署只是一種規則,控制器組件會將這一規則應用于實際負載均衡器中。原因是功能僅允許將端口用于路由,負載均衡器和則可作為全局啟動。負載均衡的限制提供了功能豐富的負載均衡器支持詳細介紹在此。截至目前,我們暫時無法使用工具將負載均衡器配置從轉換為。 如果您的應用程序是面向大量用戶、會吸引大量流量,那么一個不變的目標一定是在高效滿足用戶需求的同時、不讓用戶感知到任何類似于服務器繁忙!的情況。這一...
摘要:另一種負載均衡策略是最少連接。當使用最少連接負載均衡策略時,會把新請求分發給不太忙的服務器,從而避免分發過多的請求給忙碌的服務器造成過載。另外,還有很多的命令以及參數可以控制的負載均衡,例如。使用做負載均衡 Introduction 負載均衡一般被用來優化資源利用率、最大化吞吐量、降低延遲和容錯配置。 Nginx 可以作為一種十分有效的 HTTP 負載均衡工具來使用,通過 nginx ...
摘要:反向代理負載均衡虛擬主機配置通過本章你將學會利用配置多臺虛擬主機,清楚代理服務器的作用,區分正向代理和反向代理的區別,搭建使用反向搭理和負載均衡,了解常用配置的說明。最重要的是反向代理,負載均衡。 Nginx 反向代理 負載均衡 虛擬主機配置 通過本章你將學會利用Nginx配置多臺虛擬主機,清楚代理服務器的作用,區分正向代理和反向代理的區別,搭建使用Nginx反向搭理和負載均衡,了解N...
閱讀 1770·2023-04-25 22:42
閱讀 2212·2021-09-22 15:16
閱讀 3491·2021-08-30 09:44
閱讀 490·2019-08-29 16:44
閱讀 3308·2019-08-29 16:20
閱讀 2516·2019-08-29 16:12
閱讀 3390·2019-08-29 16:07
閱讀 670·2019-08-29 15:08