搭建高可用RabbitMQ镜像模式集群
#地址解析
192.168.122.102 rabbitmq1
192.168.122.67 rabbitmq2
192.168.122.25 rabbitmq3
#安装依赖和软件包并启动(3台)
yum -y install erlang
yum -y install socat
yum -y install rabbitmq-server
systemctl start rabbitmq-server.service
systemctl enable rabbitmq-server.service
#启动 rabbitmq 内置 web 插件, 管理 rabbitmq 账号等信息(不装这个没有15672端口)
rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server.service
#统一erlang.cookie 文件中 cookie 值
scp /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/.erlang.cookie
chmod 600 /var/lib/rabbitmq/.erlang.cookie
#把rabbitmq2、rabbitmq3添加到rabbitmq1(rabbitmq2、3上操作)
rabbitmqctl stop_app
rabbitmq join_cluster --ram rabbit@rabbitmq1
rabbitmqctl start_app
#搭建rabbitmq的镜像高可用模式集群
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
haproxy(2台)
global
log 127.0.0.1 local0
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user nobody
group nobody
daemon
defaults
mode http
log global
option dontlognull
retries 3
maxconn 3000
contimeout 50000
clitimeout 50000
srvtimeout 50000
listen stats
bind *:8888
stats enable
stats hide-version
stats uri /haproxy
stats realm Haproxy\ stats
stats auth admin:admin
stats admin if TRUE
listen rabbitmq
bind *:15672
mode tcp
balance roundrobin
server rabbitmq1 192.168.122.102:15279
server rabbitmq1 192.168.122.27:15279
server rabbitmq1 192.168.122.65:15279
keepalived(2台)
! Configuration File for keepalived
global_defs {
router_id directory1
}
vrrp_script check_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 5
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 89
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.122.100
}
track_script {
check_haproxy
}
}
! Configuration File for keepalived
global_defs {
router_id directory1
}
vrrp_script check_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 5
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 89
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.122.100
}
track_script {
check_haproxy
}
}
测试
因篇幅问题不能全部显示,请点此查看更多更全内容