一? Keepalived熱備
1? 概述
- 調(diào)度器出現(xiàn)單點故障,如何解決?
- Keepalived實現(xiàn)了高可用集群
- Keepalived最初是為LVS設(shè)計的,專門監(jiān)控各服務(wù)器節(jié)點的狀態(tài)
- Keepalived后來加入了VRRP功能,防止單點故障
2? 運行原理
Keepalived檢測每個服務(wù)器節(jié)點狀態(tài),當(dāng)服務(wù)器節(jié)點異常或工作出現(xiàn)故障, Keepalived將故障節(jié)點從集群系統(tǒng)中剔除,故障節(jié)點恢復(fù)后,Keepalived再將其加入到集群系統(tǒng)中所有工作自動完成,無需人工千預(yù)
3??配高可用的web拓撲
使用keepalived為主從設(shè)備提供VIP地址漂移
二? 案列1:使用Keepalived實現(xiàn)web服務(wù)器的高可用
- Web服務(wù)器IP地址分別為192.168.88.100和192.168.88.200
- Web服務(wù)器的VIP地址為192.168.88.80
- 客戶端通過訪問VIP地址訪問Web頁面
1? 環(huán)境說明
- web1:eth0->192.168.88.100/24
- web2:eth0->192.168.88.200/24
2? 配置keepalived
# 在兩臺web服務(wù)器上安裝keepalived
[root@pubserver cluster]# vim 07-install-keepalived.yml
---
- name: install keepalived
hosts: webservers
tasks:
- name: install keepalived # 安裝keepalived
yum:
name: keepalived
state: present
[root@pubserver cluster]# ansible-playbook 07-install-keepalived.yml
# 修改配置文件
[root@web1 ~]# vim /etc/keepalived/keepalived.conf
12 router_id web1 # 設(shè)置本機在集群中的唯一識別符
13 vrrp_iptables # 自動配置iptables放行規(guī)則
... ...
20 vrrp_instance VI_1 {
21 state MASTER # 狀態(tài),主為MASTER,備為BACKUP
22 interface eth0 # 網(wǎng)卡
23 virtual_router_id 51 # 虛擬路由器地址
24 priority 100 # 優(yōu)先級
25 advert_int 1 # 發(fā)送心跳消息的間隔
26 authentication {
27 auth_type PASS # 認證類型為共享密碼
28 auth_pass 1111 # 集群中的機器密碼相同,才能成為集群
29 }
30 virtual_ipaddress {
31 192.168.88.80/24 # VIP地址
32 }
33 }
# 刪除下面所有行
[root@web1 ~]# systemctl start keepalived
# 等幾秒服務(wù)完全啟動后,可以查看到vip
[root@web1 ~]# ip a s eth0 | grep '88'
inet 192.168.88.100/24 brd 192.168.88.255 scope global noprefixroute eth0
inet 192.168.88.80/24 scope global secondary eth0
# 配置web2
[root@web1 ~]# scp /etc/keepalived/keepalived.conf 192.168.88.200:/etc/keepalived/
[root@web2 ~]# vim /etc/keepalived/keepalived.conf
12 router_id web2 # 改id
13 vrrp_iptables
... ...
20 vrrp_instance VI_1 {
21 state BACKUP # 改狀態(tài)
22 interface eth0
23 virtual_router_id 51
24 priority 80 # 改優(yōu)先級
25 advert_int 1
26 authentication {
27 auth_type PASS
28 auth_pass 1111
29 }
30 virtual_ipaddress {
31 192.168.88.80/24
32 }
33 }
# 啟動服務(wù)
[root@web2 ~]# systemctl start keepalived
# 查看地址,eth0不會出現(xiàn)vip
[root@web2 ~]# ip a s | grep '88'
inet 192.168.88.200/24 brd 192.168.88.255 scope global noprefixroute eth0
# 測試,現(xiàn)在訪問88.80,看到是web1上的內(nèi)容
[root@client1 ~]# curl http://192.168.88.80
Welcome from web1
# 模擬web1出現(xiàn)故障
[root@web1 ~]# systemctl stop keepalived.service
# 測試,現(xiàn)在訪問88.80,看到是web2上的內(nèi)容
[root@client1 ~]# curl http://192.168.88.80
Welcome from web2
# 在web2上查看vip,可以查看到vip 192.168.88.80
[root@web2 ~]# ip a s | grep '88'
inet 192.168.88.200/24 brd 192.168.88.255 scope global noprefixroute eth0
inet 192.168.88.80/24 scope global secondary eth0
三? 案例2:配置track_script腳本
通過track script腳本控制監(jiān)視MASTER服務(wù)器的80端口,實現(xiàn)主備切換
- 創(chuàng)建/etc/keepalived/check_http.sh腳本
- 該腳本檢查本機是否監(jiān)聽在80端口
- 如果正在監(jiān)聽端口,退出碼設(shè)置為0,否則為1
- 修改KeepAlived配置,利用創(chuàng)建的腳本決定是否要切換VIP到BACKUP節(jié)點
1? 跟蹤腳本
- KeepAlived默認只提供一個VIP,對運行的服務(wù)無感知
- track_script用于檢查一個腳本的返回值,如果返回值為0,則認為當(dāng)前主機處于正常狀態(tài),如果返回值為1,則認為當(dāng)前主機處于異常狀態(tài),需要將VIP地址切換到另一臺備用機器上
- track_script來檢測應(yīng)用程序或服務(wù)是否正常,可以增加VIP地址更準確、可靠的自動切換功能,提高系統(tǒng)的可用性和可靠性
2? 實現(xiàn)原理
- 配置高可用的web集群時,Keepalived只為服務(wù)器提供了VIP
- Keepalived不知道服務(wù)器上運行了哪些服務(wù)
- MASTER服務(wù)器可以通過跟蹤腳本監(jiān)視本機的80端口,一旦本機80端口失效,則將VIP切換至BACKUP服務(wù)器
- Keepalived對腳本的要求是,退出碼為0表示訪問成功;退出碼為1表示失敗。
3? 實施
# 1. 在MASTER上創(chuàng)建監(jiān)視腳本
[root@web1 ~]# vim /etc/keepalived/check_http.sh
#!/bin/bash
ss -tlnp | grep :80 &> /dev/null && exit 0 || exit 1
[root@web1 ~]# chmod +x /etc/keepalived/check_http.sh
# 2. 修改MASTER配置文件,使用腳本
[root@web1 ~]# vim /etc/keepalived/keepalived.conf
1 ! Configuration File for keepalived
2
3 global_defs {
...略...
18 }
19
20 vrrp_script chk_http_port { # 定義監(jiān)視腳本
21 script "/etc/keepalived/check_http.sh"
22 interval 2 # 腳本每隔2秒運行一次
23 }
24
25 vrrp_instance VI_1 {
26 state MASTER
27 interface eth0
28 virtual_router_id 51
29 priority 100
30 advert_int 1
31 authentication {
32 auth_type PASS
33 auth_pass 1111
34 }
35 virtual_ipaddress {
36 192.168.88.80/24
37 }
38 track_script { # 引用腳本
39 chk_http_port
40 }
41 }
# 3. 重起服務(wù)
[root@web1 ~]# systemctl restart keepalived.service
# 4. 測試,關(guān)閉web1的nginx后,VIP將會切換至web2
[root@web1 ~]# systemctl stop nginx.service
[root@web1 ~]# ip a s | grep 88
inet 192.168.88.100/24 brd 192.168.88.255 scope global noprefixroute eth0
[root@web2 ~]# ip a s | grep 88
inet 192.168.88.200/24 brd 192.168.88.255 scope global noprefixroute eth0
inet 192.168.88.80/24 scope global secondary eth0
# 5. 當(dāng)MASTER的nginx修復(fù)后,VIP將會切換回至web1
[root@web1 ~]# systemctl start nginx.service
[root@web1 ~]# ip a s | grep 88
inet 192.168.88.100/24 brd 192.168.88.255 scope global noprefixroute eth0
inet 192.168.88.80/24 scope global secondary eth0
[root@web2 ~]# ip a s | grep 88
inet 192.168.88.200/24 brd 192.168.88.255 scope global noprefixroute eth0
四? ?案列3:Keepalived + LVS服務(wù)器
- 準備5臺服務(wù)器,兩臺用于Real ServerI,兩臺用于搭建高可用、負載平衡集群,一臺作為路由器
- 在RealServer上配置VIP并調(diào)整內(nèi)核參數(shù)
- 兩臺調(diào)度器節(jié)點均安裝Keepalived和LVS
- 通過Keepalived配置DR模式的LVS
1? 項目拓撲圖
- 使用Keepalived高可用解決調(diào)度器單點失敗問題
- 主、備調(diào)度器上配置LVS
- 主調(diào)度器異常時,Keepalived啟用備用調(diào)度器調(diào)度器
-
2? 環(huán)境準備
環(huán)境說明:LVS-DR模式?
client1 | eth0->192.168.88.10 |
lvs1 | eth0->192.168.88.5 |
lvs2 | eth0->192.168.88.6 |
web1 | eth0->192.168.88.100 |
web2 | eth0->192.168.88.200 |
# 關(guān)閉2臺web服務(wù)器上的keepalived,并卸載
[root@pubserver cluster]# vim 08-rm-keepalived.yml
---
- name: remove keepalived
hosts: webservers
tasks:
- name: stop keepalived # 停服務(wù)
service:
name: keepalived
state: stopped
- name: uninstall keepalived # 卸載
yum:
name: keepalived
state: absent
[root@pubserver cluster]# ansible-playbook 08-rm-keepalived.yml
# 創(chuàng)建新虛擬機lvs2
[root@myhost ~]# vm clone lvs2
# 為lvs2設(shè)置ip地址
[root@myhost ~]# vm setip lvs2 192.168.88.6
# 連接
[root@myhost ~]# ssh 192.168.88.6
-
配置高可用、負載均衡
- 在2臺web服務(wù)器的lo上配置vip
- 在2臺web服務(wù)器上配置內(nèi)核參數(shù)
- 刪除lvs1上的
eth0
上的VIP地址。因為vip將由keepalived接管
[root@pubserver cluster]# vim 09-del-lvs1-vip.yml
---
- name: del lvs1 vip
hosts: lvs1
tasks:
- name: rm vip
lineinfile: # 在指定文件中刪除行
path: /etc/sysconfig/network-scripts/ifcfg-eth0
regexp: 'IPADDR2=' # 正則匹配
state: absent
notify: restart system
handlers:
- name: restart system
shell: reboot
[root@pubserver cluster]# ansible-playbook 09-del-lvs1-vip.yml
# 查看結(jié)果
[root@lvs1 ~]# ip a s eth0 | grep 88
inet 192.168.88.5/24 brd 192.168.88.255 scope global noprefixroute eth0
- 刪除lvs1上的lvs規(guī)則。因為lvs規(guī)則將由keepalived創(chuàng)建
[root@lvs1 ~]# ipvsadm -Ln # 查看規(guī)則
[root@lvs1 ~]# ipvsadm -D -t 192.168.88.15:80
- 在lvs上配置keepalived
# 在主機清單文件中加入lvs2的說明
[root@pubserver cluster]# vim inventory
...略...
[lb]
lvs1 ansible_host=192.168.88.5
lvs2 ansible_host=192.168.88.6
...略...
# 安裝軟件包
[root@pubserver cluster]# cp 01-upload-repo.yml 10-upload-repo.yml
---
- name: config repos.d
hosts: lb
tasks:
- name: delete repos.d
file:
path: /etc/yum.repos.d
state: absent
- name: create repos.d
file:
path: /etc/yum.repos.d
state: directory
mode: '0755'
- name: upload local88
copy:
src: files/local88.repo
dest: /etc/yum.repos.d/
[root@pubserver cluster]# ansible-playbook 10-upload-repo.yml
[root@pubserver cluster]# vim 11-install-lvs2.yml
---
- name: install lvs keepalived
hosts: lb
tasks:
- name: install pkgs # 安裝軟件包
yum:
name: ipvsadm,keepalived
state: present
[root@pubserver cluster]# ansible-playbook 11-install-lvs2.yml
[root@lvs1 ~]# vim /etc/keepalived/keepalived.conf
12 router_id lvs1 # 為本機取一個唯一的id
13 vrrp_iptables # 自動開啟iptables放行規(guī)則
... ...
20 vrrp_instance VI_1 {
21 state MASTER
22 interface eth0
23 virtual_router_id 51
24 priority 100
25 advert_int 1
26 authentication {
27 auth_type PASS
28 auth_pass 1111
29 }
30 virtual_ipaddress {
31 192.168.88.15 # vip地址,與web服務(wù)器的vip一致
32 }
33 }
# 以下為keepalived配置lvs的規(guī)則
35 virtual_server 192.168.88.15 80 { # 聲明虛擬服務(wù)器地址
36 delay_loop 6 # 健康檢查延遲6秒開始
37 lb_algo wrr # 調(diào)度算法為wrr
38 lb_kind DR # 工作模式為DR
39 persistence_timeout 50 # 50秒內(nèi)相同客戶端調(diào)度到相同服務(wù)器
40 protocol TCP # 協(xié)議是TCP
41
42 real_server 192.168.88.100 80 { # 聲明真實服務(wù)器
43 weight 1 # 權(quán)重
44 TCP_CHECK { # 通過TCP協(xié)議對真實服務(wù)器做健康檢查
45 connect_timeout 3 # 連接超時時間為3秒
46 nb_get_retry 3 # 3次訪問失敗則認為真實服務(wù)器故障
47 delay_before_retry 3 # 兩次檢查時間的間隔3秒
48 }
49 }
50 real_server 192.168.88.200 80 {
51 weight 2
52 TCP_CHECK {
53 connect_timeout 3
54 nb_get_retry 3
55 delay_before_retry 3
56 }
57 }
58 }
# 以下部分刪除
# 啟動keepalived服務(wù)
[root@lvs1 ~]# systemctl start keepalived
# 驗證
[root@lvs1 ~]# ip a s eth0 | grep 88
inet 192.168.88.5/24 brd 192.168.88.255 scope global noprefixroute eth0
inet 192.168.88.15/32 scope global eth0
[root@lvs1 ~]# ipvsadm -Ln # 出現(xiàn)規(guī)則
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.88.15:80 wrr persistent 50
-> 192.168.88.100:80 Route 1 0 0
-> 192.168.88.200:80 Route 2 0 0
# 客戶端連接測試
[root@client1 ~]# for i in {1..6}; do curl http://192.168.88.15/; done
Welcome from web2
Welcome from web2
Welcome from web2
Welcome from web2
Welcome from web2
Welcome from web2
# 為了效率相同的客戶端在50秒內(nèi)分發(fā)給同一臺服務(wù)器。為了使用同一個客戶端可以看到輪詢效果,可以注釋配置文件中相應(yīng)的行后,重啟keepavlied。
[root@lvs1 ~]# vim +39 /etc/keepalived/keepalived.conf
...略...
# persistence_timeout 50
...略...
[root@lvs1 ~]# systemctl restart keepalived.service
# 在客戶端驗證
[root@client1 ~]# for i in {1..6}; do curl http://192.168.88.15/; done
Welcome from web2
Welcome from web1
Welcome from web2
Welcome from web2
Welcome from web1
Welcome from web2
# 配置LVS2
[root@lvs1 ~]# scp /etc/keepalived/keepalived.conf 192.168.88.6:/etc/keepalived/
[root@lvs2 ~]# vim /etc/keepalived/keepalived.conf
12 router_id lvs2
21 state BACKUP
24 priority 80
[root@lvs2 ~]# systemctl start keepalived
[root@lvs2 ~]# ipvsadm -Ln # 出現(xiàn)規(guī)則
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.88.15:80 wrr
-> 192.168.88.100:80 Route 1 0 0
-> 192.168.88.200:80 Route 2 0 0
- 驗證
# 1. 驗證真實服務(wù)器健康檢查
[root@web1 ~]# systemctl stop nginx
[root@lvs1 ~]# ipvsadm -Ln # web1在規(guī)則中消失
[root@lvs2 ~]# ipvsadm -Ln
[root@web1 ~]# systemctl start nginx
[root@lvs1 ~]# ipvsadm -Ln # web1重新出現(xiàn)在規(guī)則中
[root@lvs2 ~]# ipvsadm -Ln
# 2. 驗證lvs的高可用性
[root@lvs1 ~]# shutdown -h now # 關(guān)機
[root@lvs2 ~]# ip a s | grep 88 # 可以查看到vip
inet 192.168.88.6/24 brd 192.168.88.255 scope global noprefixroute eth0
inet 192.168.88.15/32 scope global eth0
# 客戶端訪問vip依然可用
[root@client1 ~]# for i in {1..6}; do curl http://192.168.88.15/; done
Welcome from web1
Welcome from web2
Welcome from web2
Welcome from web1
Welcome from web2
Welcome from web2
五? HAProxy
1? 簡介
它是免費、快速并且可靠的一種解決方案,適用于那些負載特大的web站點,這些站點通常又需要會話保持或七層處理,可以提供高可用性、負載均衡以及基于TCP和HTTP應(yīng)用的代理
2? 衡量負責(zé)均衡器性能的因素
- Session rate 會話率,每秒鐘產(chǎn)生的會話數(shù)
- Session concurrency 并發(fā)會話數(shù),服務(wù)器處理會話的時間越長,并發(fā)會話數(shù)越多
- Data rate數(shù)據(jù)速率,以MB/s或Mbps衡量
3 工作模式
mode http
????????-? 客戶端請求被深度分析后再發(fā)往服務(wù)器,只適用于web服務(wù)
mode tcp
????????-? 4層調(diào)度,不檢查第七層信息,適用于各種服務(wù)
mode health
????????-? 僅做健康狀態(tài)檢查,已經(jīng)不建議使用
六? 案列4? 配置HAProxy負載平衡集群
- 準備三臺虛擬機兩臺做Web服務(wù)器,一臺安裝HAProxy
- 安裝并配置HAProxy,發(fā)往HAProxy的連接請求,分發(fā)到真正的Web服務(wù)器-把HAProxy設(shè)置為開機自動啟動
- 設(shè)置HAProxy以實現(xiàn)監(jiān)控,并查看監(jiān)控信息
1? 項目拓撲圖
2? 環(huán)境準備
client1 | eth0 -> 192.168.88.10 |
HAProxy | eth0 -> 192.168.88.5 |
web1 | eth0 -> 192.168.88.100 |
web2 | eth0 -> 192.168.88.200 |
3? 初始化配置
# 關(guān)閉192.168.88.6
[root@lvs2 ~]# shutdown -h now
# 配置192.168.88.5為haproxy服務(wù)器
[root@pubserver cluster]# vim 12-config-haproxy.yml
---
- name: config haproxy
hosts: lvs1
tasks:
- name: rm lvs keepalived # 刪除軟件包
yum:
name: ipvsadm,keepalived
state: absent
- name: rename hostname # 修改主機名
shell: hostnamectl set-hostname haproxy1
- name: install haproxy # 安裝軟件包
yum:
name: haproxy
state: present
[root@pubserver cluster]# ansible-playbook 12-config-haproxy.yml
# web服務(wù)器,不需要配置vip,不需要改內(nèi)核參數(shù)。但是存在對haproxy也沒有影響。
- 配置haproxy
# 修改配置文件
[root@haproxy1 ~]# vim /etc/haproxy/haproxy.cfg
# 配置文件中,global是全局配置;default是缺省配置,如果后續(xù)有和default相同的配置,default配置將會被覆蓋。
# 配置文件中,frontend描述haproxy怎么和用戶交互;backend描述haproxy怎么和后臺應(yīng)用服務(wù)器交互。這兩個選項,一般不單獨使用,而是合并到一起,名為listen。
# 將64行之后全部刪除,寫入以下內(nèi)容
64 #---------------------------------------------------------------------
65 listen myweb # 定義虛擬服務(wù)器
66 bind 0.0.0.0:80 # 監(jiān)聽在所有可用地址的80端口
67 balance roundrobin # 定義輪詢調(diào)度算法
# 對web服務(wù)器做健康檢查,2秒檢查一次,如果連續(xù)2次檢查成功,認為服務(wù)器是健康的,如果連續(xù)5次檢查失敗,認為服務(wù)器壞了
68 server web1 192.168.88.100:80 check inter 2000 rise 2 fall 5
69 server web2 192.168.88.200:80 check inter 2000 rise 2 fall 5
70
71 listen stats # 定義虛擬服務(wù)器
72 bind 0.0.0.0:1080 # 監(jiān)聽在所有可用地址的1080端口
73 stats refresh 30s # 設(shè)置監(jiān)控頁面自動刷新時間為30秒
74 stats uri /stats # 定義監(jiān)控地址是/stats
75 stats auth admin:admin # 監(jiān)控頁面的用戶名和密碼都是admin
# 啟服務(wù)
[root@haproxy1 ~]# systemctl start haproxy.service
# 使用firefox訪問監(jiān)控地址 http://192.168.88.5:1080/stats
# 客戶端訪問測試
[root@client1 ~]# for i in {1..6}; do curl http://192.168.88.5/; done
Welcome from web2
Welcome from web1
Welcome from web2
Welcome from web1
Welcome from web2
Welcome from web1
# client1上使用ab訪問
[root@client1 ~]# yum install -y httpd-tools
[root@client1 ~]# ab -n1000 -c200 http://192.168.88.5/
監(jiān)控地址?http://192.168.88.5:1080/stats如下:
- Queue:隊列長度。Cur當(dāng)前隊列長度,Max最大隊列長度,Limit限制長度
- Session rate:會話率,每秒鐘的會話數(shù)
- Sessions:會話數(shù)
- Bytes:字節(jié)數(shù)。In收到的字節(jié)數(shù),Out發(fā)出的字節(jié)數(shù)
- Denied:拒絕。Req請求,Resp響應(yīng)
- Errors:錯誤
- Warning:警告
- Status:狀態(tài)
- LastChk:上一次檢查。L4OK,第四層tcp檢查通過
- Wght:權(quán)重
七? 負載均衡調(diào)度器比較
LVS適用于需要高并發(fā)性和穩(wěn)定性的場景,Nginx適用于靜態(tài)文件服務(wù)和反向代理等應(yīng)用層負載均衡場景,HAProxy則具備較為豐富的功能和靈活性,適用于多種負載均衡場景。
1? LVS(Linux Virtual Server)
優(yōu)點:文章來源:http://www.zghlxwxcb.cn/news/detail-699606.html
- 高性能:LVS使用Linux內(nèi)核中的IP負載均衡技術(shù),能夠?qū)崿F(xiàn)非常高的并發(fā)處理能力。
- 穩(wěn)定性:LVS經(jīng)過長時間的實踐應(yīng)用,成熟穩(wěn)定,被廣泛使用。
- 可用性:支持高可用性的配置,可以實現(xiàn)故障自動切換,提供無中斷的服務(wù)。
- 靈活性:可根據(jù)需要采用多種負載均衡算法,如輪詢、加權(quán)輪詢、哈希等。
缺點:文章來源地址http://www.zghlxwxcb.cn/news/detail-699606.html
- 配置復(fù)雜:相對于其他兩個技術(shù),LVS的配置相對較為復(fù)雜,需要更深入的了解和配置。
- 功能相對局限:LVS主要是一種傳輸層負載均衡技術(shù),無法像Nginx和HAProxy那樣對應(yīng)用層協(xié)議進行處理。
2? Nginx
優(yōu)點:
- 高性能:Nginx采用了基于事件驅(qū)動的異步非阻塞架構(gòu),能夠處理大量并發(fā)連接。
- 負載均衡:Nginx具備內(nèi)置的負載均衡功能,可以根據(jù)配置進行請求的轉(zhuǎn)發(fā)。
- 豐富的功能:Nginx支持反向代理、靜態(tài)文件服務(wù)、緩存、SSL等,在Web服務(wù)器領(lǐng)域有很廣泛的應(yīng)用。
缺點:
- 功能相對較少:相對于LVS和HAProxy,Nginx在負載均衡算法和健康檢查等方面的功能相對較少。
- 限制于應(yīng)用層協(xié)議:Nginx只能對HTTP和HTTPS等應(yīng)用層協(xié)議進行處理,無法處理其他協(xié)議。
3? HAProxy
優(yōu)點:
- 靈活性:HAProxy支持豐富的負載均衡算法和會話保持方式,可以根據(jù)需求進行靈活配置。
- 完整的功能:HAProxy支持高可用性配置、健康檢查、故障恢復(fù)、SSL等功能,在負載均衡領(lǐng)域應(yīng)用廣泛。
- 高性能:HAProxy性能優(yōu)良,能夠處理大量并發(fā)連接,并且支持異步IO模型。
缺點:
- 內(nèi)存占用:相對于Nginx和LVS,HAProxy在處理大量連接時消耗的內(nèi)存稍高一些。
- 高可用性:HAProxy需要借助額外的工具來實現(xiàn)高可用性,例如Keepalived。
到了這里,關(guān)于Nginx 學(xué)習(xí)(十)高可用中間件的配置與實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!