RabbitMQ集群架構(gòu)-4、KeepAlived

其實KeepAlived在我之前關(guān)于nginx的學(xué)習(xí)帖子【nginx 高可用HA keepalived學(xué)習(xí)】就已經(jīng)講到過使用了,這里就算是重復(fù)的講一下吧,另:在上幾篇帖子中是有一個安裝文檔的,朋友們需要是可以去找一下

1.介紹



2、Keepalived安裝

PS:下載地址:[http://www.keepalived.org/download.html](http://www.keepalived.org/download.html)

//安裝所需軟件包

yum install -y openssl openssl-devel

//下載

wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz

//解壓、編譯、安裝

tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/

cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived

make && make install

//將keepalived安裝成Linux系統(tǒng)服務(wù),因為沒有使用keepalived的默認安裝路徑(默認路徑:/usr/local),安裝完成之后,需要做一些修改工作

//首先創(chuàng)建文件夾,將keepalived配置文件進行復(fù)制:

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

//然后復(fù)制keepalived腳本文件:

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

ln -s /usr/local/sbin/keepalived /usr/sbin/

ln -s /usr/local/keepalived/sbin/keepalived /sbin/

//可以設(shè)置開機啟動:chkconfig keepalived on,到此我們安裝完畢!

chkconfig keepalived on

3、Keepalived配置


PS:修改keepalived.conf配置文件

vim /etc/keepalived/keepalived.conf

PS: 79節(jié)點(Master)配置如下

! Configuration File for keepalived

global_defs {

   router_id bhz79  ##標(biāo)識節(jié)點的字符串,通常為hostname

}

vrrp_script chk_haproxy {

    script "/etc/keepalived/haproxy_check.sh"  ##執(zhí)行腳本位置

    interval 2  ##檢測時間間隔

    weight -20  ##如果條件成立則權(quán)重減20

}

vrrp_instance VI_1 {

    state MASTER  ## 主節(jié)點為MASTER,備份節(jié)點為BACKUP

    interface eth0 ## 綁定虛擬IP的網(wǎng)絡(luò)接口(網(wǎng)卡),與本機IP地址所在的網(wǎng)絡(luò)接口相同(我這里是eth0)

    virtual_router_id 79  ## 虛擬路由ID號(主備節(jié)點一定要相同)

    mcast_src_ip 192.168.11.79 ## 本機ip地址

    priority 100  ##優(yōu)先級配置(0-254的值)

    nopreempt

    advert_int 1  ## 組播信息發(fā)送間隔,倆個節(jié)點必須配置一致,默認1s

authentication {  ## 認證匹配

        auth_type PASS

        auth_pass bhz

    }

    track_script {

        chk_haproxy

    }

    virtual_ipaddress {

        192.168.11.70  ## 虛擬ip,可以指定多個

    }

}

PS: 80節(jié)點(backup)配置如下

! Configuration File for keepalived

global_defs {

   router_id bhz80  ##標(biāo)識節(jié)點的字符串,通常為hostname

}

vrrp_script chk_haproxy {

    script "/etc/keepalived/haproxy_check.sh"  ##執(zhí)行腳本位置

    interval 2  ##檢測時間間隔

    weight -20  ##如果條件成立則權(quán)重減20

}

vrrp_instance VI_1 {

    state BACKUP  ## 主節(jié)點為MASTER,備份節(jié)點為BACKUP

    interface eno16777736 ## 綁定虛擬IP的網(wǎng)絡(luò)接口(網(wǎng)卡),與本機IP地址所在的網(wǎng)絡(luò)接口相同(我這里是eno16777736)

    virtual_router_id 79  ## 虛擬路由ID號(主備節(jié)點一定要相同)

    mcast_src_ip 192.168.11.80  ## 本機ip地址

    priority 90  ##優(yōu)先級配置(0-254的值)

    nopreempt

    advert_int 1  ## 組播信息發(fā)送間隔,倆個節(jié)點必須配置一致,默認1s

authentication {  ## 認證匹配

        auth_type PASS

        auth_pass bhz

    }

    track_script {

        chk_haproxy

    }

    virtual_ipaddress {

        192.168.1.70  ## 虛擬ip,可以指定多個

    }

}

4、執(zhí)行腳本編寫

PS:添加文件位置為/etc/keepalived/haproxy_check.sh(79、80兩個節(jié)點文件內(nèi)容一致即可)

#!/bin/bash

COUNT=`ps -C haproxy --no-header |wc -l`

if [ $COUNT -eq 0 ];then

    /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg

    sleep 2

    if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then

        killall keepalived

    fi

fi

5、執(zhí)行腳本賦權(quán)


PS:haproxy_check.sh腳本授權(quán),賦予可執(zhí)行權(quán)限.

chmod +x /etc/keepalived/haproxy_check.sh

#6、啟動keepalived

PS:當(dāng)我們啟動倆個haproxy節(jié)點以后,我們可以啟動keepalived服務(wù)程序:

//啟動兩臺機器的keepalived

service keepalived start | stop | status | restart

//查看狀態(tài)

ps -ef | grep haproxy

ps -ef | grep keepalived

7、高可用測試

PS:vip在27節(jié)點上

![](https://upload-images.jianshu.io/upload_images/8553141-224d04c213dfe480.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

PS:27節(jié)點宕機測試:停掉27的keepalived服務(wù)即可。

![](https://upload-images.jianshu.io/upload_images/8553141-7550ddc185b682f9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
PS:查看28節(jié)點狀態(tài):我們發(fā)現(xiàn)VIP漂移到了28節(jié)點上,那么28節(jié)點的haproxy可以繼續(xù)對外提供服務(wù)!

![](https://upload-images.jianshu.io/upload_images/8553141-2efea724b66a1657.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容