【rabbitmq】rabbitmq集群部署

一、环境配置

IP地址             主机名       操作系统       服务名                 用途
172.16.16.238      node1      centos7.4     erlang、rabbitmq      磁盘节点
172.16.16.239      node2      centos7.4     erlang、rabbitmq      内存节点
172.16.16.240      node3      centos7.4     erlang、rabbitmq      内存节点

1、配置hosts

vim /etc/hosts
172.16.16.238 node1
172.16.16.239 node2
172.16.16.240 node3

2、安装erlang
(1)安装依赖

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

(2)解压编译

#解压
tar -xzf otp_src_19.0.tar.gz
#编译
cd otp_src_19.0
./configure --prefix=/data/erlang --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac
make && make install

(3)环境变量设置

#配置profile
vim /etc/profile
ERLANG_HOME=/data/erlang
PATH=$PATH:$JAVA_HOME/bin:$ERLANG_HOME/bin 

#使配置生效  
source /etc/profile

#校验
erl

二、安装 rabbitmq
1、解压

tar xf rabbitmq-server-generic-unix-3.6.6.tar.xz 
cp -r rabbitmq_server-3.6.6/ /data/rabbitmq

2、启动rabbitmq

#三个节点全部启动
cd /data/rabbitmq/sbin/
./rabbitmq-server -detached

3、拷贝.erlang.cookie

#RabbitMQ集群依赖erlang集群才能工作,所以需要先构建erlang集群,.erlang.cookie文件在启动用户的家目录下,我这里是用root用户启动的RabbitMQ,拷贝一台服务器的/home/root/.erlang.cookie到其他机器并设置权限
scp .erlang.cookie  [email protected]:/root/
scp .erlang.cookie  [email protected]:/root/
chmod 400 .erlang.cookie

#拷贝完文件后重启node2、node3上的rabbitmq服务

4、设置集群的模式:镜像

#在任意一个节点操作即可
./rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

5、加入集群

#rabbitmq启动默认是disc,我们需要把node2、node3设置为内存节点
#在node2、node3上执行
./rabbitmqctl stop_app
./rabbitmqctl join_cluster  --ram rabbit@node1
./rabbitmqctl start_app

6、查看集群状态

./rabbitmqctl cluster_status

在这里插入图片描述

7、启用web管理界面

#任选一台节点启动即可
#开启web管理模块
./rabbitmq-plugins enable rabbitmq_management
 
#设置用户密码:
./rabbitmqctl add_user admin 123456
 
#设置权限:
./rabbitmqctl set_user_tags admin administrator

#设置默认hosts权限
./rabbitmqctl set_permissions admin ".*" ".*" ".*"

8、登陆页面

浏览器输入:http://172.16.16.238:15672
在这里插入图片描述
用户名为admin,密码为123456

在这里插入图片描述
扩展

#改变节点类型为磁盘节点
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app

#将节点移出集群,将节点ip-172-31-11-216 移出集群前,先要stop_app,然后reset节点
rabbitmqctl stop_app
rabbitmqctl reset

#rabbitmq机制  
只有一个磁盘节点,就可以支持工作,所以线上rabbitmq必须要有一个磁盘节点存在。

おすすめ

転載: blog.csdn.net/qq_37837432/article/details/108582112
おすすめ