离线环境RabbitMQ集群搭建安装步骤

1,197 阅读4分钟

arm64架构离线环境安装RabbitMQ集群

RabbitMQ版本是3.8.2,本次安装使用3台服务器组成集群。

arm64架构与x86架构除安装包不一致,其余安装步骤不变。

安装步骤中未标记具体ip执行的,需要在所有服务器上都执行命令

一、下载安装包

搭建RabbitMQ需要以下3个安装包:

1、rabbitmq-server下载地址:github.com/rabbitmq/ra…

选择rabbitmq-server-generic-unix-3.8.2.tar.xz

2、Erlang下载地址:www.erlang.org/patches/otp… ,点击Dowanload source,下载后,得到otp_src_21.3.8.20.tar.gz

3、socat下载地址:www.dest-unreach.org/socat/downl… ,选择socat-1.7.3.4.tar.gz进行下载

4、将安装包上传至服务器的/usr/local/rabbitmq/目录

二、预安装插件并配置环境变量

1、安装依赖插件:

yum install ncurses ncurses-devel  
yum install unixODBC unixODBC-devel 
yum install openssl
yum -y install make gcc gcc-c++ 

2、配置ip映射

编辑/etc/hosts文件,添加如下内容

#注:ip1/ip2/ip3是集群服务器节点的实际ip,rabbit1/rabbit2/rabbit3是为实际ip配置的映射,对应后文rabbitmq-env配置文件中的NODENAME
ip1 rabbit1
ip2 rabbit2
ip3 rabbit3

三、安装Erlang

1、解压后重命名
cd  /usr/local/rabbitmq/
tar -zxf  otp_src_21.3.8.20.tar.gz
mv otp_src_21.3.8.20 erlang
2、安装
cd erlang
./configure --prefix=/usr/local/rabbitmq/erlang --without-javac
make && make install

以下告警并不会影响erlang的使用,可忽略:

make[2]: *** 没有规则可制作目标“release”。 停止。

3、为erlang配置环境变量

若为全局所有用户配置环境变量,需要修改/ect/profile

若只为当前登录用户配置环境变量,需修改~/.bashrc或~/.bash_profile为准,本次安装以~/.bash_profile为准

#erlang
export PATH=$PATH:/usr/local/rabbitmq/erlang/bin
#rabbitmq
export PATH=$PATH:/usr/local/rabbitmq/rabbitmq_server/sbin
#socat
export PATH=$PATH:/usr/local/rabbitmq/socat-1.7.3.4/bin

保存并退出后刷新环境变量:

source ~/.bash_profile
4、验证安装情况
erl

输出以下内容代表安装成功:

Erlang/OTP 21 [erts-10.3.5.15] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]

退出erl控制台:q().

四、安装socat

1、解压
cd  /usr/local/rabbitmq/
tar -zxf socat-1.7.3.4.tar.gz
2、安装
cd socat-1.7.3.4
./configure  --prefix=/usr/local/rabbitmq/socat-1.7.3.4 --disable-fips 
make && make install
3、验证
socat

输出以下内容表示安装成功:

socat[84712] E exactly 2 addresses required (there are 0); use option "-h" for help

五、安装RabbitMQ

1、解压后重命名
cd  /usr/local/rabbitmq/
tar -xvf rabbitmq-server-generic-unix-3.8.2.tar.xz
mv rabbitmq_server-3.8.2 rabbitmq_server
2、修改env配置文件
cd /usr/local/rabbitmq/rabbitmq_server/sbin
vim rabbitmq-env
#在文件中添加如下内容(三个服务器节点配置为rabbit1、rabbit2、rabbit3)
NODENAME=rabbit@rabbit1
3、后台启动并配置插件
nohup ./rabbitmq-server -detatched & disown
#检查是否正常启动:
tail -f nohup.out
#开启rabbitmq: 
rabbitmqctl start_app
#开启管理插件:
rabbitmq-plugins enable rabbitmq_management
4、配置用户并设置权限
#新建用户
rabbitmqctl add_user rbmq rbmq
#设置权限
rabbitmqctl  set_user_tags  rbmq administrator
#创建虚拟主机
rabbitmqctl add_vhost valhost
#设置vhost权限
rabbitmqctl set_permissions -p "valhost" rbmq ".*" ".*" ".*"
rabbitmqctl set_permissions -p "/" rbmq ".*" ".*" ".*" 
#删除默认用户
rabbitmqctl delete_user guest

检查用户是否安装:

rabbitmqctl list_users

输出以下内容代表安装成功:

Listing users ...

user tags

rbmq [administrator]

六、搭建集群

1、配置统一的erlang环境

复制ip1中erlang的cookie内容:

 cat ~/.erlang.cookie

复制控制台输出的内容

2、为ip2、ip3设置cookie
#赋权
chmod u+w ~/.erlang.cookie
vim  ~/.erlang.cookie
#清除原有内容,将复制的cookie粘贴
#设置为只读权限
chmod 400 ~/.erlang.cookie
3、关闭所有服务器上的rabbitmq进程后重启
#重启
cd /usr/local/rabbitmq/rabbitmq_server/sbin
nohup ./rabbitmq-server -detatched &

ip1执行启动:

rabbitmqctl start_app

ip2、ip3执行:

rabbitmqctl stop_app
rabbitmqctl reset
#添加到集群
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app
4、检查集群状态
rabbitmqctl cluster_status

检查输出内容:

Cluster status of node rabbit@rabbit1 ...
Basics

Cluster name: rabbit@rabbit1

Disk Nodes

rabbit@rabbit1
rabbit@rabbit2
rabbit@rabbit3

Running Nodes

rabbit@rabbit1
rabbit@rabbit2
rabbit@rabbit3
5、配置镜像队列

镜像队列的作用是当消息发送到任一节点后,都可以复制到另外的节点,开启后可以起到防止消息丢失和提高集群可用性的作用。

集群中任意节点执行都可,注意替换其中的valhost为自己集群的虚拟主机名

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}' --priority 0 --vhost valhost

以上内容为RabbitMQ集群搭建流程,亲测有效