1. 程式人生 > >Keepalived熱備(處理單點故障,高可用) Keepalived+LVS(高可用,負載均衡) 、 HAProxy伺服器(負載均衡)

Keepalived熱備(處理單點故障,高可用) Keepalived+LVS(高可用,負載均衡) 、 HAProxy伺服器(負載均衡)

keepalived概述
這裡寫圖片描述

keepalived執行原理
這裡寫圖片描述



Top

NSD CLUSTER DAY03




  1. 案例1:Keepalived高可用伺服器

  2. 案例3:Keepalived+LVS伺服器

  3. 案例1:配置HAProxy負載平衡叢集


1 案例1:Keepalived高可用伺服器


1.1 問題


準備三臺Linux伺服器,兩臺做Web伺服器,並部署Keepalived高可用軟體,一臺作為客戶端主機,實現如下功能:



  • 使用Keepalived實現web伺服器的高可用
  • Web伺服器IP地址分別為192.168.4.10和192.168.4.20
  • Web伺服器的漂移VIP地址為192.168.4.80
  • 客戶端通過訪問VIP地址訪問Web頁面

1.2 方案


使用3臺虛擬機器,2臺作為Web伺服器,並部署Keepalived、1臺作為客戶端,拓撲結構如圖-1所示,主機配置如表-1所示。




圖-1

這裡寫圖片描述

表-1


這裡寫圖片描述
1.3 步驟

實現此案例需要按照如下步驟進行。
步驟一:配置網路環境

1)設定Web1伺服器網路引數、配置Web服務
[[email protected] ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.10/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth0
[[email protected] ~]# yum -y install httpd
[[email protected]

~]# echo “192.168.4.10” > /var/www/html/index.html
[[email protected] ~]# systemctl restart httpd
2)設定Web2伺服器網路引數、配置Web服務
[[email protected] ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.20/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth0
[[email protected] ~]# yum -y install httpd
[[email protected] ~]# echo “192.168.4.20” > /var/www/html/index.html
[[email protected] ~]# systemctl restart httpd
3)配置proxy主機的網路引數(如果已經設定,可以忽略此步驟)
[[email protected] ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.5/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth0
步驟二:安裝Keepalived軟體

注意:兩臺Web伺服器做相同的操作。
[[email protected] ~]# yum install -y keepalived
[[email protected] ~]# yum install -y keepalived
步驟三:部署Keepalived服務

1)修改web1伺服器Keepalived配置檔案
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected] //設定報警收件人郵箱
}
notification_email_from [email protected] //設定發件人
smtp_server 127.0.0.1 //定義郵件伺服器
smtp_connect_timeout 30
router_id web1 //設定路由ID號(實驗需要修改)
}
vrrp_instance VI_1 {
state MASTER //主伺服器為MASTER(實驗需要修改)
interface eth0 //定義網路介面(實驗需要修改)
virtual_router_id 50 //主輔VRID號必須一致(實驗需要修改)
priority 100 //伺服器優先順序,優先順序高優先獲取VIP(實驗需要修改)
advert_int 1
authentication {
auth_type pass
auth_pass forlvs //主輔伺服器密碼必須一致
}
virtual_ipaddress { 192.168.4.80 } //誰是主伺服器誰獲得該VIP(實驗需要修改)
}
2)修改web2伺服器Keepalived配置檔案
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected] //設定報警收件人郵箱
}
notification_email_from [email protected] //設定發件人
smtp_server 127.0.0.1 //定義郵件伺服器
smtp_connect_timeout 30
router_id web2 //設定路由ID號(實驗需要修改)
}
vrrp_instance VI_1 {
state BACKUP //從伺服器為BACKUP(實驗需要修改)
interface eth0 //定義網路介面(實驗需要修改)
virtual_router_id 50 //主輔VRID號必須一致(實驗需要修改)
priority 50 //伺服器優先順序(實驗需要修改)
advert_int 1
authentication {
auth_type pass
auth_pass forlvs //主輔伺服器密碼必須一致(實驗需要修改)
}
virtual_ipaddress { 192.168.4.80 } //誰是主伺服器誰配置VIP(實驗需要修改)
}
3)啟動服務
[[email protected] ~]# systemctl start keepalived
[[email protected] ~]# systemctl start keepalived
4)配置防火牆和SELinux
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
步驟四:測試

1)登入兩臺Web伺服器檢視VIP資訊
[[email protected] ~]# ip addr show
[[email protected] ~]# ip addr show
2) 客戶端訪問
客戶端使用curl命令連線http://192.168.4.80,檢視Web頁面;關閉Web1伺服器的網絡卡,客戶端再次訪問http://192.168.4.80,驗證是否可以正常訪問服務。
2 案例3:Keepalived+LVS伺服器
2.1 問題

使用Keepalived為LVS排程器提供高可用功能,防止排程器單點故障,為使用者提供Web服務:
LVS1排程器真實IP地址為192.168.4.15
LVS2排程器真實IP地址為192.168.4.16
伺服器VIP地址設定為192.168.4.5
真實Web伺服器地址分別為192.168.4.10、192.168.4.20
使用加權輪詢排程演算法,真實web伺服器權重不同
2.2 方案

使用5臺虛擬機器,1臺作為客戶端主機、2臺作為LVS排程器、2臺作為Real Server,拓撲結構如圖-2所示,具體配置如表-2所示。
這裡寫圖片描述
這裡寫圖片描述
2.3 步驟

實現此案例需要按照如下步驟進行。
步驟一:配置網路環境

1)設定Web1伺服器的網路引數
[[email protected] ~]# nmcli connection modify eth0 ipv4.method manual \
ipv4.addresses 192.168.4.10/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth0
接下來給web1配置VIP地址
注意:這裡的子網掩碼必須是32(也就是全255),網路地址與IP地址一樣,廣播地址與IP地址也一樣。
[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] ~]# cp ifcfg-lo{,:0}
[[email protected] ~]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.5
NETMASK=255.255.255.255
NETWORK=192.168.4.5
BROADCAST=192.168.4.5
ONBOOT=yes
NAME=lo:0
注意:這裡因為web1也配置與代理一樣的VIP地址,預設肯定會出現地址衝突。
寫入這四行的主要目的就是訪問192.168.4.5的資料包,只有排程器會響應,其他主機都不做任何響應。
[[email protected] ~]# vim /etc/sysctl.conf

手動寫入如下4行內容

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2

當有arp廣播問誰是192.168.4.5時,本機忽略該ARP廣播,不做任何迴應

本機不要向外宣告自己的lo迴環地址是192.168.4.5

重啟網路服務,設定防火牆與SELinux
[[email protected] ~]# systemctl restart network
[[email protected] ~]# ifconfig
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
2)設定Web2伺服器的網路引數
[[email protected] ~]# nmcli connection modify eth0 ipv4.method manual \
ipv4.addresses 192.168.4.20/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth0
接下來給web1配置VIP地址
注意:這裡的子網掩碼必須是32(也就是全255),網路地址與IP地址一樣,廣播地址與IP地址也一樣。
[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] ~]# cp ifcfg-lo{,:0}
[[email protected] ~]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.5
NETMASK=255.255.255.255
NETWORK=192.168.4.5
BROADCAST=192.168.4.5
ONBOOT=yes
NAME=lo:0
注意:這裡因為web1也配置與代理一樣的VIP地址,預設肯定會出現地址衝突。
寫入這四行的主要目的就是訪問192.168.4.5的資料包,只有排程器會響應,其他主機都不做任何響應。
[[email protected] ~]# vim /etc/sysctl.conf

手動寫入如下4行內容

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2

當有arp廣播問誰是192.168.4.5時,本機忽略該ARP廣播,不做任何迴應

本機不要向外宣告自己的lo迴環地址是192.168.4.5

重啟網路服務,設定防火牆與SELinux
[[email protected] ~]# systemctl restart network
[[email protected] ~]# ifconfig
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
3)配置proxy1主機的網路引數(不配置VIP,有keepalvied自動配置)
[[email protected] ~]# nmcli connection modify eth0 ipv4.method manual \
ipv4.addresses 192.168.4.15/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth0
[[email protected] ~]# ipvsadm -C #清空前面所有的規則
4)配置proxy2主機的網路引數(不配置VIP,有keepalvied自動配置)
[[email protected] ~]# nmcli connection modify eth0 ipv4.method manual \
ipv4.addresses 192.168.4.16/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth0
[[email protected] ~]# ipvsadm -C #清空前面所有的規則
步驟二:配置後臺web服務

1)安裝軟體,自定義Web頁面(web1和web2主機)
[[email protected] ~]# yum -y install httpd
[[email protected]web1 ~]# echo “192.168.4.10” > /var/www/html/index.html
[[email protected] ~]# yum -y install httpd
[[email protected] ~]# echo “192.168.4.10” > /var/www/html/index.html
3)啟動Web伺服器軟體(web1和web2主機)
[[email protected] ~]# systemctl start httpd ; systemctl enable httpd
[[email protected] ~]# systemctl start httpd ; systemctl enable httpd
步驟三:排程器安裝Keepalived與ipvsadm軟體

注意:兩臺LVS排程器執行相同的操作(如何已經安裝軟體,可用忽略此步驟)。
安裝軟體
[[email protected] ~]# yum install -y keepalived
[[email protected] ~]# systemctl enable keepalived
[[email protected] ~]# yum install -y ipvsadm
[[email protected] ~]# yum install -y keepalived
[[email protected] ~]# systemctl enable keepalived
[[email protected] ~]# yum install -y ipvsadm
步驟四:部署Keepalived實現LVS-DR模式排程器的高可用

1)LVS1排程器設定Keepalived,並啟動服務
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected] //設定報警收件人郵箱
}
notification_email_from [email protected] //設定發件人
smtp_server 127.0.0.1 //定義郵件伺服器
smtp_connect_timeout 30
router_id lvs1 //設定路由ID號(實驗需要修改)
}
vrrp_instance VI_1 {
state MASTER //主伺服器為MASTER(實驗需要修改)
interface eth0 //定義網路介面(實驗需要修改)
virtual_router_id 50 //主輔VRID號必須一致(實驗需要修改)
priority 100 //伺服器優先順序(實驗需要修改)
advert_int 1
authentication {
auth_type pass
auth_pass forlvs //主輔伺服器密碼必須一致(實驗需要修改)
}
virtual_ipaddress { 192.168.4.5 } //配置VIP(實驗需要修改)
}
virtual_server 192.168.4.5 80 { //設定ipvsadm的VIP規則(實驗需要修改)
delay_loop 6
lb_algo wrr //設定LVS排程演算法為WRR
lb_kind DR //設定LVS的模式為DR
persistence_timeout 1
protocol TCP
real_server 192.168.4.10 80 { //設定後端web伺服器真實IP(實驗需要修改)
weight 1 //設定權重為1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.20 80 { //設定後端web伺服器真實IP(實驗需要修改)
weight 2 //設定權重為2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
[[email protected] ~]# systemctl start keepalived
[[email protected] ~]# ipvsadm -Ln #檢視LVS規則
[[email protected] ~]# ip a s #檢視VIP配置
2)LVS2排程器設定Keepalived
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected] //設定報警收件人郵箱
}
notification_email_from [email protected] //設定發件人
smtp_server 127.0.0.1 //定義郵件伺服器
smtp_connect_timeout 30
router_id lvs2 //設定路由ID號(實驗需要修改)
}
vrrp_instance VI_1 {
state BACKUP //從伺服器為BACKUP(實驗需要修改)
interface eth0 //定義網路介面(實驗需要修改)
virtual_router_id 50 //主輔VRID號必須一致(實驗需要修改)
priority 50 //伺服器優先順序(實驗需要修改)
advert_int 1
authentication {
auth_type pass
auth_pass forlvs //主輔伺服器密碼必須一致(實驗需要修改)
}
virtual_ipaddress { 192.168.4.5 } //設定VIP(實驗需要修改)
}
virtual_server 192.168.4.5 80 { //自動設定LVS規則(實驗需要修改)
delay_loop 6
lb_algo wrr //設定LVS排程演算法為WRR
lb_kind DR //設定LVS的模式為DR
persistence_timeout 1
protocol TCP
real_server 192.168.4.10 80 { //設定後端web伺服器的真實IP(實驗需要修改)
weight 1 //設定權重為1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.20 80 { //設定後端web伺服器的真實IP(實驗需要修改)
weight 2 //設定權重為2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
[[email protected] ~]# systemctl start keepalived
[[email protected] ~]# ipvsadm -Ln #檢視LVS規則
[[email protected] ~]# ip a s #檢視VIP設定
步驟五:客戶端測試

客戶端使用curl命令反覆連線http://192.168.4.5,檢視訪問的頁面是否會輪詢到不同的後端真實伺服器。
3 案例1:配置HAProxy負載平衡叢集
3.1 問題

準備4臺Linux伺服器,兩臺做Web伺服器,1檯安裝HAProxy,1臺做客戶端,實現如下功能:
客戶端訪問HAProxy,HAProxy分發請求到後端Real Server
要求HAProxy可以根據Cookie為客戶端分配固定後端伺服器
開啟HAProxy監控頁面,及時檢視排程器狀態
設定HAProxy為開機啟動
3.2 方案

使用4臺虛擬機器,1臺作為HAProxy排程器、2臺作為Real Server、1臺作為客戶端,拓撲結構如圖-3所示,具體配置如表-3所示。
這裡寫圖片描述
這裡寫圖片描述
3.3 步驟

實現此案例需要按照如下步驟進行。
注意事項:

將前面實驗VIP、LVS等實驗的內容清理乾淨!!!!!!

刪除所有裝置的VIP,清空所有LVS設定,關閉keepalived!!!

web1關閉多餘的網絡卡與VIP,配置本地真實IP地址。
[[email protected] ~]# ifdown eth0
[[email protected] ~]# ifdown lo:0
[[email protected] ~]# nmcli connection modify eth1 ipv4.method manual \
ipv4.addresses 192.168.2.100/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth1
Web2關閉多餘的網絡卡與VIP,配置本地真實IP地址。
[[email protected] ~]# ifdown eth0
[[email protected] ~]# ifdown lo:0
[[email protected] ~]# nmcli connection modify eth1 ipv4.method manual \
ipv4.addresses 192.168.2.200/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth1
proxy關閉keepalived服務,清理LVS規則。
[[email protected] ~]# systemctl stop keepalived
[[email protected] ~]# systemctl disable keepalived
[[email protected] ~]# ipvsadm -C
[[email protected] ~]# nmcli connection modify eth0 ipv4.method manual \
ipv4.addresses 192.168.4.5/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth0
[[email protected] ~]# nmcli connection modify eth1 ipv4.method manual \
ipv4.addresses 192.168.2.5/24 connection.autoconnect yes
[[email protected] ~]# nmcli connection up eth1
步驟一:配置後端Web伺服器

設定兩臺後端Web服務(如果已經配置完成,可用忽略此步驟)
[[email protected] ~]# yum -y install httpd
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# echo “192.168.2.100” > /var/www/html/index.html
[[email protected] ~]# yum -y install httpd
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# echo “192.168.2.200” > /var/www/html/index.html
步驟二:部署HAProxy伺服器

1)配置網路,安裝軟體
[[email protected] ~]# sed -i ‘/ip_forward/s/0/1/’ sysctl.conf //開啟路由轉發
[[email protected] ~]# sysctl -p
[[email protected] ~]# yum -y install haproxy
2)修改配置檔案
[[email protected] ~]# vim /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2 ###[err warning info debug]
chroot /usr/local/haproxy
pidfile /var/run/haproxy.pid ###haproxy的pid存放路徑
maxconn 4000 ###最大連線數,預設4000
user haproxy
group haproxy
daemon ###建立1個程序進入deamon模式執行
defaults
mode http ###預設的模式mode { tcp|http|health } log global ###採用全域性定義的日誌
option dontlognull ###不記錄健康檢查的日誌資訊
option httpclose ###每次請求完畢後主動關閉http通道
option httplog ###日誌類別http日誌格式
option forwardfor ###後端伺服器可以從Http Header中獲得客戶端ip
option redispatch ###serverid伺服器掛掉後強制定向到其他健康伺服器
timeout connect 10000 #如果backend沒有指定,預設為10s
timeout client 300000 ###客戶端連線超時
timeout server 300000 ###伺服器連線超時
maxconn 60000 ###最大連線數
retries 3 ###3次連線失敗就認為服務不可用,也可以通過後面設定
listen stats
bind 0.0.0.0:1080 #監聽埠
stats refresh 30s #統計頁面自動重新整理時間
stats uri /stats #統計頁面url
stats realm Haproxy Manager #統計頁面密碼框上提示文字
stats auth admin:admin #統計頁面使用者名稱和密碼設定
#stats hide-version #隱藏統計頁面上HAProxy的版本資訊
listen websrv-rewrite 0.0.0.0:80
cookie SERVERID rewrite
balance roundrobin
server web1 192.168.20.101:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server web2 192.168.20.102:80 cookie app1inst2 check inter 2000 rise 2 fall 5
3)啟動伺服器並設定開機啟動
[[email protected] ~]# systemctl start haproxy
[[email protected] ~]# systemctl enable haproxy
步驟三:客戶端驗證

客戶端配置與HAProxy相同網路的IP地址,並使用火狐瀏覽器訪問http://192.168.4.5,測試排程器是否正常工作,客戶端訪問http://192.168.4.5/haproxy-admin測試狀態監控頁面是否正常。
訪問狀態監控頁的內容,參考圖-4所示。
這裡寫圖片描述
備註:
Queue佇列資料的資訊(當前佇列數量,最大值,佇列限制數量);
Session rate每秒會話率(當前值,最大值,限制數量);
Sessions總會話量(當前值,最大值,總量,Lbtot: total number of times a server was selected選中一臺伺服器所用的總時間);
Bytes(入站、出站流量);
Denied(拒絕請求、拒絕迴應);
Errors(錯誤請求、錯誤連線、錯誤迴應);
Warnings(重新嘗試警告retry、重新連線redispatches);
Server(狀態、最後檢查的時間(多久前執行的最後一次檢查)、權重、備份伺服器數量、down機伺服器數量、down機時長)。

擴充套件1 此配置檔案實現了一臺192.168.4.50 作為haproxy服務分發器,分發排程兩臺192.168.4.55 192.168.4.56 作為web伺服器的功能
此配置可以實現擴充套件1的功能

擴充套件2 此配置檔案實現了一臺192.168.4.50 根據類似業務分發排程 四臺192.168.4.55(處理 .html頁面) 192.168.4.56(處理 .html頁面) 192.168.4.51(處理 .php頁面) 192.168.4.57(處理 .php頁面)
此配置可以實現擴充套件2的功能

相關推薦

Keepalived處理故障可用 Keepalived+LVS(可用負載均衡) HAProxy伺服器負載均衡

keepalived概述 keepalived執行原理 Top NSD CLUSTER DAY03 案例1:Keepalived高可用伺服器

keepAlived應用於HaProxy的主自動切換實現可用避免故障

前言 對於訪問量較大的網站來說,隨著流量的增加單臺伺服器已經無法處理所有的請求,這時候需要多臺伺服器對大量的請求進行分流處理,即負載均衡。而如果實現負載均衡,必須在網站的入口部署伺服器(不只是一臺)對這些請求進行分發,這臺伺服器即反向代理。由於反向代理伺服器是網站的入口

MongoDB分片群集實現分片服務啟用分片服務管理故障模擬

Opens 取數 page use chmod 組成 壓力 多個 clu MongoDB分片概述 1、什麽是分片 高數據量和吞吐量的數據庫應用會對單機的性能造成較大壓力,大的查詢量會將單機的CPU耗盡,大的數據量對單機的存儲壓力較大,最終會耗盡系統的內存而將壓力轉移到磁盤

Keepalived搭建雙Nginx server叢集 防止故障

                綜述:瀏覽器訪問虛擬IP: 192.168.1.57, 該虛擬IP被Keepalived接管,兩個Keepalived程序分別執行在物理IP為192.168.1.56和192.168.1.59伺服器上,這兩個伺服器上都執行著Nginx server。Nginx server都監

原創分散式系統應對故障策略選擇

     這邊說明下,redis比較特殊。redis支援主從的模式,但是它是用來進行讀寫資料分離。redis中Master會將資料同步到slave,而slave不會將資料同步到master。Slave啟動時會連線master來同步資料。這是一個典型的分散式讀寫分離模型。我們可以利用master來插入資料,sl

linux HAProxyKeepalived

alived localhost 完成 lin 延遲 rewrite 需要 enabled haproxy HAProxy 它是免費,快速且可靠的一種解決方案沒,適用於那些負載特大的web站點這些站點通常又需要會話保持或七層處理提供高可用性,負載均衡及基於tcp和http應

03: HAProxy服務器 Keepalived Keepalived+LVS

init.d usr show mkdir 訪問網站 主配置文件 end rewrite 存儲空間 LVS/DR 不對realserver 主機上的服務做健康性檢查是基於四層負載均衡集群軟件(端口) 一、使用Haproxy軟件部署網站LB集群1.1 普通LB集群 客戶端

Hadoop--故障修復

oop 配置文件 dfs 添加 .com 主機 修改 style mage          nameNode單點故障修復    1.啟動虛擬機,啟動集群                  此時我們將主機hadoop1關機(斷掉主機),開始搶救:     1.使用 秘書(s

嘿!不用太過於擔心的故障

數據庫服務 點數據 擴展 單點 阿裏雲 解決 保持 一場 預警 不知道從什麽時候開始,咱們的面試問題清單裏,就明明白白寫了,如何處理大流量高並發問題,如何實現高可用?所以,我也經常會去考慮這些問題(哈哈,當然不是為了面試)。 大流量,高並發問題,好像已經成了教科書類的問題,

ZooKeeper應用——解決分布式系統故障

什麽是 src 模式 code 就會 避免 分享圖片 進程 方式 1.單點故障問題 什麽是分布式系統中的單點故障:通常分布式系統采用主從模式,就是一個主控機連接多個處理節點。主節點負責分發任務,從節點負責處理任務,當我們的主節點發生故障時,那麽整個系統就都癱瘓了,那麽我們

ZooKeeper應用——解決分散式系統故障

1.單點故障問題 什麼是分散式系統中的單點故障:通常分散式系統採用主從模式,就是一個主控機連線多個處理節點。主節點負責分發任務,從節點負責處理任務,當我們的主節點發生故障時,那麼整個系統就都癱瘓了,那麼我們把這種故障叫作單點故障。 傳統方式是採用一個備用節點,這個備用節點定期給當前主節點發送

存在故障的namenode宕機恢復測試

前提:如果namenode沒有做HA,那麼至少應該啟用secondarynamenode,以便namenode宕機之後手動恢復資料 實驗環境:3個節點(cenos 6.10) 測試前資料:    1.為了確保資料儘可能恢復,手動checkpoint一下 [[email

[Hbase]Hbase章3 Hbase故障

很長一段時間以來,一個region同一時間只能在一臺RS(Region Server)中開啟。如果一個region同時在多個RS上開啟,就是multi-assign問題,會導致資料不一致甚至丟資料的情況,這是要避免和解決的。對於正常情況而言,region本質上是單點服務的,當RS宕機時,這個RS上的regio

Keepalived Keepalived+LVS HAProxy伺服器

案例1:Keepalived高可用伺服器 案例3:Keepalived+LVS伺服器 案例1:配置HAProxy負載平衡叢集 1 案例1:Keepalived高可用伺服器 1.1 問題 準備三臺Linux伺服器,兩臺做Web伺服器,並部署Keepali

Hadoop 2.0中故障解決方案總結

Hadoop 1.0核心主要由兩個分支組成:MapReduce和HDFS,眾所周知,這兩個系統的設計缺陷是單點故障,即MR的JobTracker和HDFS的NameNode兩個核心服務均存在單點問題,該問題在很長時間內沒有解決,這使得Hadoop在相當長時間內僅適合離線儲存和

樹狀陣列區間修改+查詢 只能查詢

差分思想: 假設有一個數列  a = { 2, 6, 9, 3, 7 }, 那麼對應的差分陣列b 有   , b = {2, 4, 3, -6, 4 } 因為  b1 + b2 + b3 + ... +  = a1 + (a2 - a1) + (a3 - a2) + ..

java使用Redis6–sentinel故障主從自動切換

package redis; import java.util.HashSet; import java.util.Set; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.Jedis; import redis.clie

Hadoop系統中的故障解決方案總結

相較與Hadoop1.0,Hadoop2.0提供了比較完整的單點故障解決方案(Hadoop HA)Hadoop2.0核心由三個分支組成:HDFS、MapReduce和YARN,其他的Hadoop生態系統元件比如:HBase、Hive、Pig等,均是基於這三個系統開發的。因此在

Spring boot + shiro + redis 實現session共享登入

    為實現Web應用的分散式叢集部署,要解決登入session的統一。本文利用shiro做許可權控制,redis做session儲存,結合spring boot快速配置實現session共享。注意本文未解決跨域的問題。不過對於一般的情況能夠很好的起到作用,具體已經在不同埠

使用session儲存使用者登入狀態實現登入

由於是軟體公司,專案使用者量很小,而且是傳統專案,所以用session來儲存使用者的登入狀態。前端是移動端,我為session物件寫了一個工具類,供自己用,記錄一下,說不定以後還會用到。 先上session工具的程式碼: package com.xxxx.utils;