docker使用三个节点部署rabbitmq集群

1.集群节点介绍

节点ip

主机名称

运行服务

10.0.129.13

tcs-10-0-129-13

keepalived haproxy rabbitmq

10.0.129.14

tcs-10-0-129-14

keepalived haproxy rabbitmq

10.0.129.15

tcs-10-0-129-15

rabbitmq

2.rabbitmq集群部署

1.需要部署机器的节点创建挂载目录这边我们需要创建的就是13,14,15 这三台
mkdir /opt/rabbitmq/

2.写入每台节点用于映射hosts文件
cat >> /opt/rabbitmq/hosts << EOF
10.0.129.13 rabbitmq01
10.0.129.14 rabbitmq02
10.0.129.15 rabbitmq03
EOF


3.配置完成后开始部署这里直接使用宿主机网络 访问端口是15672   使用端口是5972
# 第一个节点启动mq容器
docker run -itd   --log-opt max-size=10m --log-opt max-file=4 \
 --name rabbit1  --hostname rabbitmq01 --restart=always \
 -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=root   \
 -e RABBITMQ_ERLANG_COOKIE='secret cookie here'   -v /opt/rabbitmq/hosts:/etc/hosts  \
 -v /opt/rabbitmq:/var/lib/rabbitmq:z --net host rabbitmq:3.6.15-management


##第二个节点启动mq容器
docker run -itd   --log-opt max-size=10m --log-opt max-file=4  \
--name rabbit2  --hostname rabbitmq02 --restart=always \
 -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=root  \
 -e RABBITMQ_ERLANG_COOKIE='secret cookie here'   -v /opt/rabbitmq/hosts:/etc/hosts  \
 -v /opt/rabbitmq:/var/lib/rabbitmq:z --net host rabbitmq:3.6.15-management


## 第三个节点启动mq容器
docker run -itd   --log-opt max-size=10m --log-opt max-file=4  \
 --name rabbit3  --hostname rabbitmq03 --restart=always \
 -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=root  \
 -e RABBITMQ_ERLANG_COOKIE='secret cookie here'   -v /opt/rabbitmq/hosts:/etc/hosts  \
 -v /opt/rabbitmq:/var/lib/rabbitmq:z --net host rabbitmq:3.6.15-management


4.第一台机器:
进入容器 docker exec -it rabbit1 /bin/bash
查看rabbitmq集群状态(这步只是为为了方便取得rabbitmq的名称,便于加入集群中): rabbitmqctl cluster_status

4.1第二台机器:
进入容器: docker exec -it rabbit2 /bin/bash
查看集群: rabbitmqctl cluster_status
停止: rabbitmqctl stop_app
重置: rabbitmqctl reset
#注释: @ 后面的主机名字 加入集群—内存节点:
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
启动服务:rabbitmqctl start_app


4.3第三台机器:
进入容器 docker exec -it rabbit3 /bin/bash
查看集群(测试启动是否成功OK接着下一步):rabbitmqctl cluster_status
停止: rabbitmqctl stop_app
重置: rabbitmqctl reset
#注释: @ 后面的主机名字 加入集群—磁盘节点:
rabbitmqctl join_cluster rabbit@rabbitmq01
启动服务:rabbitmqctl start_app



5.开启镜像列队进行
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

2.1.访问验证

3. haproxy负载部署

注意:以下操作配置在14节点上相同这里不在进行赘述

1.这里直接下载haproxy 
yum  install -y haproxy


2.修改配置文件
[root@tcs-10-0-129-13 /etc/haproxy]# vi haproxy.cfg
global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend  app
    mode  tcp
    # 负载访问地址
    bind *:9090
    default_backend             app
#backend static
#    balance     roundrobin
#    server      static 127.0.0.1:4331 check
   #轮询后端地址

backend app
    balance     roundrobin
    server  app1 10.0.129.13:15672 check inter 5000 rise 2 fall 3
    server  app2 10.0.129.14:15672 check inter 5000 rise 2 fall 3
    server  app3 10.0.129.15:15672 check inter 5000 rise 2 fall 3
# 监控页面
listen  stats
    bind *:1080
    ## 访问 x.x.x.x:1080/admin 输入一下auth即可访问监控页面
    stats  auth admin:admin@123
    stats  refresh 5s
    stats  realm  HAProxy\ Statistics
    stats  uri  /admin




3.1.负载验证

这里我们访问13节点的9090端口可以看到能正常访问rabbitmq,证明负载生效

3.2.负载监控查看

4.keepalived部署

为了防止负载节点挂掉vip能够漂移

1.13.14两台节点下载需要命令和服务
#为了使用kiall命令验证需要下载 psmisc
yum install -y psmisc

yum install -y  keepalived


修改主节点配置
[root@tcs-10-0-129-13 /etc/haproxy]# cat /etc/keepalived/keepalived.conf
global_defs {
   router_id LVS_DEVEL
}
#HAProxy健康检查配置
vrrp_script chk_haproxy {
    script "killall -0 haproxy"  #使用killall -0检查haproxy实例是否存在,性能高于ps命令
    interval 2   #脚本运行周期
    weight 2   #每次检查的加权权重值
}
 
vrrp_instance HA_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.129.77/24   #配置的vip地址
    }
    track_script {
        chk_haproxy        #对应的健康检查配置
    }
}


修改从节点配置
[root@tcs-10-0-129-14 /etc/haproxy]# vi /etc/keepalived/keepalived.conf
global_defs {
   router_id LVS_DEVEL
}
#HAProxy健康检查配置
vrrp_script chk_haproxy {
    script "killall -0 haproxy"  #使用killall -0检查haproxy实例是否存在,性能高于ps命令
    interval 2   #脚本运行周期
    weight 2   #每次检查的加权权重值
}
 
vrrp_instance HA_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.129.77/24
    }
    track_script {
        chk_haproxy        #对应的健康检查配置
    }
}

4.1验证vip是否生成

4.2vip访问测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值