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集群搭建流程,亲测有效