網(wǎng)站不在首頁顯示出來企業(yè)官網(wǎng)定制設(shè)計
1 負載均衡器的原理與功能
單臺Chatserver可以容納大約兩萬臺客戶端同時在線聊天,為了提升并發(fā)量最直觀的辦法需要水平擴展服務(wù)器的數(shù)量,三臺服務(wù)器可以容納六萬左右的客戶端。
負載均衡器的作用:
- 把client的請求按照負載均衡算法分發(fā)到具體業(yè)務(wù)服務(wù)器chatserver上面:保證server與client的長連接,依據(jù)輪詢算法/權(quán)重算法等將不同client連接到不同server上面,提升client的容量
- 能夠和chatserver保持心跳機制,監(jiān)測chatserver故障:nginx能夠?qū)崟r監(jiān)測server是否由于網(wǎng)絡(luò)故障無法為client提供服務(wù),可以引入心跳計數(shù)器進行判斷
- 能夠發(fā)現(xiàn)新添加的chatserver設(shè)備,方便擴展服務(wù)器數(shù)量:能夠在不關(guān)閉原有服務(wù)器的基礎(chǔ)上平滑添加新的server供nginx調(diào)度分配
2 nginx的tcp負載均衡配置和功能驗證
選擇nginx的tcp負載均衡模塊需要解決的問題:
- 如何進行nginx源碼編譯,包括tcp負載均衡模塊
- nginx.conf配置文件中如何配置負載均衡
- nginx的平滑加載配置文件啟動
配置參考:Nginx負載均衡實踐-CSDN博客
安裝好nginx之后位于usr/local/nginx之下:
配置文件位于conf文件夾下的nginx.conf,可執(zhí)行文件位于sbin下。
nginx提供了應用層(http web)和傳輸層(tcp)的負載均衡,在nginx.conf中修改即可。
#nginx tcp loadbalance config
stream{upstream MyServer{/*weight:設(shè)置服務(wù)器權(quán)重,加權(quán)輪詢算法中權(quán)重大的優(yōu)先分配客戶端max_fails:與server的心跳機制,超過3次未響應則認為故障fail_timeout:每次心跳監(jiān)測的時長為30s添加新的服務(wù)器無需停止nginx服務(wù),只需要修改此配置文件即可*/server 127.0.0.1 6000 weight=1 max_fails=3 fail_timeout=30s;server 127.0.0.1 6002 weight=1 max_fails=3 fail_timeout=30s;}server{proxy_connect_timeout 1s;#proxy_timeout 3s;//客戶端統(tǒng)一連接nginx的8000端口,由nginx進行負載均衡listen 8000;//反向代理對象為MyServerproxy_pass MyServer;tcp_nodelay on;}
}
./nginx -s reload:平滑重啟配置文件
./nginx -s stop:停止nginx服務(wù)
結(jié)果測試:
(1)啟動nginx
(2)測試連接
兩臺客戶端訪問8000端口的nginx分別被分配到了兩臺服務(wù)器。