Docker实现keepalived+RabbitMQ的高可用(二)

本文是在上篇的基础上实现keepalived + RabbitMQ的高可用实现。
上篇文章链接:Linux系统的keepalived+tomcat+redis+other的高可用实现

1.使用镜像安装rabbitMQ

docker pull hub.c.163.com/library/rabbitmq:3-management

注意:标签为3-management,使用默认最新的无法连接浏览器的可视化界面。

2.运行镜像,生成容器

docker run -d --name rabbitmq --publish 15672:15672 hub.c.163.com/library/rabbitmq:3-management

3.创建check_rabbitmq_port.sh脚本文件

文件位置为/etc/keepalived:

#!/bin/bash
count=`nmap -p 15672 127.0.0.1|grep open|wc -l`
if [ $count != 0 ]
then
    exit 0
else
    exit 1
fi

rabbitmq的端口号为15672

4.配置keepalived.conf文件

(1)引入脚本
vrrp_script chk_http3_port {
        script "/etc/keepalived/check_rabbitmq_port.sh"
        interval 1
        weight -20
}
(2)创建vrrp模块
   vrrp_instance VI_3 {
        state MASTER
        interface eth0
    virtual_router_id 53
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 123456
        }
        virtual_ipaddress {
            192.168.50.224/24
        }
        track_script {
	     chk_http3_port
        }
        priority 90  ##主服务100 备服务90只要小于100就可以
    }
(3)完整的keepalived.conf文件

包含上篇文章中,redis,tomcat,以及本篇文章rabbitmq的配置文件内容:

vrrp_script chk_http1_port {
        script "/etc/keepalived/check_redis_port.sh"
        interval 1
        weight -20
}
vrrp_script chk_http2_port {
        script "/etc/keepalived/check_tomcat_port.sh"
        interval 1
        weight -20
}
vrrp_script chk_http3_port {
        script "/etc/keepalived/check_rabbitmq_port.sh"
        interval 1
        weight -20
}
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
    virtual_router_id 51
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 123456
        }
        virtual_ipaddress {
            192.168.50.222/24
        }
        track_script {
	    chk_http1_port
        }
        priority 90  ##主服务100 备服务90只要小于100就可以
    }
    vrrp_instance VI_2 {
        state MASTER
        interface eth0
    virtual_router_id 52
        advert_int 1
        authentication {
            auth_type PA
            auth_pass 123
        }
        virtual_ipaddress {
            192.168.50.223/24
        }
        track_script {
	     chk_http2_port
        }
        priority 90  ##主服务100 备服务90只要小于100就可以
    }
    vrrp_instance VI_3 {
        state MASTER
        interface eth0
    virtual_router_id 53
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 123456
        }
        virtual_ipaddress {
            192.168.50.224/24
        }
        track_script {
	     chk_http3_port
        }
        priority 90  ##主服务100 备服务90只要小于100就可以
    }

惯例:主机的priority属性为100,备机为90.

5.修改check_rabbitmq_port.sh脚本文件的权限

使用 ls -l命令查看该脚本文件的权限。如果无执行权限,即执行以下命令,修改文件的权限至最高:

chmod 777 check_rabbitmq_port.sh

6.可视化界面

启动rabbitmq容器:docker restart rabbitmq容器id.
浏览器使用本机ip:端口号进入可视化界面,比如我的本机ip为192.168.50.34,端口号默认都是15672,所以浏览器访问192.168.50.34:15672地址即可。
登录的账号密码,默认都为guest

7.测试

分别启动主备机的keepalived,分别启动主备机的rabbitmq,进入浏览器访问可视化界面。
启动命令
启动命令
主机ip一个界面,备机ip一个界面,keepalived虚拟ip一个界面。
登录界面
登录界面
可视化界面
可视化界面
根据文件名查看主备机切换
查看文件名最开始时,虚拟ip访问的页面与主机访问页面的该文件名一致,然后停止主机的rabbitmq,刷新页面。
查看该地址是否切换到备机的地址。如果切换,配置成功。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值