高可用普及

2022-09-10 17:42:14 字數 2810 閱讀 8451

目錄

一般是指2臺機器啟動著完全相同的業務系統,當有一台機器down機了,另外一台伺服器就能快速的接管,對於訪問的使用者是無感知的。

比如公司的網路是通過閘道器進行上網的,那麼如果該路由器故障了,閘道器無法**報文了,此時所有人都無法上網了,怎麼辦?

通常做法是給路由器增加一台備節點,但是問題是,如果我們的主閘道器master故障了,使用者是需要手動指向backup的,如果使用者過多修改起來會非常麻煩。

問題一:假設使用者將指向都修改為backup路由器,那麼master路由器修好了怎麼辦?

問題二:假設master閘道器故障,我們將backup閘道器配置為master閘道器的ip是否可以?

其實是不行的,因為pc第一次通過arp廣播尋找到master閘道器的mac位址與ip位址後,會將資訊寫到arp的快取表中,那麼pc之後連線都是通過那個快取表的資訊去連線,然後進行資料報的**,即使我們修改了ip但是mac位址是唯一的,pc的資料報依然會傳送給master。(除非是pc的arp快取表過期,再次發起arp廣播的時候才能獲取新的backup對應的mac位址與ip位址)

如何才能做到出現故障自動轉移,此時vrrp就出現了,我們的vrrp其實是通過軟體或者硬體的形式在master和backup外面增加乙個虛擬的mac位址(vmac)與虛擬ip位址(vip),那麼在這種情況下,pc請求vip的時候,無論是master處理還是backup處理,pc僅會在arp快取表中記錄vmac與vip的資訊。

vrrp即虛擬路由冗餘協議(virtual router redundancy protocol),它是為了避免路由器出現單點故障的一種容錯協議。(相當於在乙個區域網中進行廣播,)

1.硬體通常使用 f5

2.軟體通常使用 keepalived

# keepalived配置

[root@lb01 ~]#vim /etc/keepalived/keepalived.conf

! configuration file for keepalived

# 全域性配置

global_defs

# 檢測指令碼

vrrp_script check_nginx

# 配置vrrp協議

vrrp_instance vi_1

# 設定vip

virtual_ipaddress

# 呼叫檢查

track_script

}# 啟動

兩台高可用伺服器在指定時間內,無法互相檢查到對方的心跳而各自啟動故障轉移功能。

1、如果nginx宕機怎麼辦?

想辦法告訴keepalived,nginx的情況。

2、區域網之內,keepalived無法相互廣播,怎麼辦?

判斷vip是否可以ping的通

[root@lb01 ~]# vim checkng.sh 

#!/bin/bash

# 解決nginx無法正常啟動

ps -ef | grep -q [n]ginx

if [ $? -ne 0 ];then

# 代表nginx未正常啟動

systemctl start nginx &>/dev/null

sleep 2

ps -ef | grep -q [n]ginx

if [ $? -ne 0 ];then

systemctl stop keepalived

fifi

# 區域網之內,keepalived無法相互廣播,怎麼辦?

# vip=192.168.15.3

# ping -c 1 $vip &>/dev/null

# if [ $? -eq 0 ];then

# 代表vip還可以訪問

# fi

& : 正確的標準輸出和錯誤的標準輸出

實現非搶占式。

1、狀態全部都有設定成backup

2、增加 nopreempt

[root@lb02 ~]# cat /etc/keepalived/keepalived.conf

! configuration file for keepalived

global_defs

# 檢測指令碼

vrrp_script check_nginx

# 配置vrrp協議

vrrp_instance vi_1

#設定vip

virtual_ipaddress

# 呼叫檢查

高併發 高可用

高併發 提高系統併發能力的方法主要有兩種 前者垂直擴充套件可以通過提公升單機硬體效能,或者提公升單機架構效能,來提高併發性,但單機效能總是有極限的,網際網路分布式架構設計高併發終極解決方案還是後者 水平擴充套件。網際網路分層架構中,各層次水平擴充套件的實踐又有所不同 1 反向 層可以通過 dns輪詢...

redis 高可用切換 Redis高可用使用方法二

redis高可用使用方法一 redis高可用使用方法三 之前是主從模式下,但如果考慮到主從切換時,對於開發者來說需要更換配置檔案,是乙個不明智的選擇 而官方提供了哨兵模式 當然在官方不提供的前提下方式是有多種解決的 dns,四層等 一 哨兵的配置 cd redis 4.0.12 切換到之前解壓的目錄...

keepalived haproxy高可用集群

環境 主haproxy伺服器 192.168.80.100 keepalived haproxy 備haproxy伺服器 192.168.80.101 keepalived haproxy web伺服器1 192.168.80.102 httpd nginx tomcat web伺服器2 192.1...