rabbitmq三节点高可用部署

rabbitmq三节点高可用集群部署

三台主机:1.1.1.15-17

nginx配置

yum -y install zlib zlib-devel openssl-devel
cd /usr/local/src
tar -zxf nginx-1.22.0.tar.gz
cd nginx-1.22.0
./configure --prefix=/usr/local/nginx --user=webadm --group=webadm --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-stream
make && make install

#配置四层代理
$ vim /usr/local/nginx/conf/nginx.conf
stream {
	upstream rabbitmq {
		server 1.1.1.15:5672 weight=1 max_fails=3 fail_timeout=300s;
		server 1.1.1.16:5672 weight=1 max_fails=3 fail_timeout=300s;
		server 1.1.1.17:5672 weight=1 max_fails=3 fail_timeout=300s;
	}

	server {
        	listen 5671;
        	proxy_connect_timeout 20s;
        	proxy_timeout 5m;
        	proxy_pass rabbitmq;
	}
}

rabbitmq安装

配置erlang的yum源,erlang是rabbitmq的依赖包,不同的rabbitmq版本对应不同的erlang的版本。

$ cat /etc/yum.repos.d/erlang.repo
[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
 
[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300


#若不能联网,可以先在其他主机下载
yum install erlang-23.3.4.11-1.el7.x86_64 -y --downloadonly --downloaddir=/usr/local/src/


#yum安装rabbitmq,我这里的rabbitmq的rpm包是自己官网下载的,也可以配置rabbitmq的yum源。
yum -y install rabbitmq-server-3.9.12-1.el7.noarch.rpm

rabbitmq配置

传输密钥令牌(三个节点都需要操作)

#三个节点修改主机名并写入hosts文件
$ cat /etc/hosts
1.1.1.15 rabbit-node1
1.1.1.16 rabbit-node2
1.1.1.17 rabbit-node3

#node1启动rabbitmq服务,启动后/var/lib/rabbitmq目录会生成.erlang.cookie文件
systemctl restart rabbitmq-server

#授权.erlang.cookie文件
cd /var/lib/rabbitmq
chmod 600 .erlang.cookie

#关闭rabbitmq服务,并把.erlang.cookie传到其他两个节点,其他两个节点均需要授权
scp -r /var/lib/rabbitmq/.erlang.cookie root@rabbit-node2:/var/lib/rabbitmq/
scp -r /var/lib/rabbitmq/.erlang.cookie root@rabbit-node3:/var/lib/rabbitmq/

#16,17对文件授权
chmod 600 /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

集群创建(三个节点都需要操作)

以node1为主,其它两个节点逐步加入。

#三个节点启动rabbitmq服务
systemctl start rabbitmq-server

#16,17分别执行以下命令加入集群
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit-node1
rabbitmqctl start_app

#查看集群状态
$ rabbitmqctl cluster_status

Cluster status of node rabbit@rabbit-node1 ...
Basics

Cluster name: rabbit@rabbit-node1

Disk Nodes

rabbit@rabbit-node1
rabbit@rabbit-node2
rabbit@rabbit-node3

Running Nodes

rabbit@rabbit-node1
rabbit@rabbit-node2
rabbit@rabbit-node3
...

rabbitmq实现浏览器访问(node1节点)

#启动插件
rabbitmq-plugins enable rabbitmq_management

#创建用户
rabbitmqctl add_user rabbitmq CDC_yhcx2022

#授予用户角色为管理员
rabbitmqctl set_user_tags rabbitmq administrator

#授权
rabbitmqctl set_permissions -p "/" rabbitmq ".*" ".*" ".*"

浏览器输入任意节点加15672端口即可访问集群
在这里插入图片描述

开启镜像队列

指定了 ha-mode 的值为 all ,代表消息会被同步到所有节点的相同队列中。

#rabbitmqctl set_policy -p / --apply-to queues my_queue_mirror "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

keepalived配置

略。
p / --apply-to queues my_queue_mirror “^” ‘{“ha-mode”:“all”,“ha-sync-mode”:“automatic”}’
rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:“all”}’




### keepalived配置

略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值