这里写自定义目录标题
环境安装
wget http://erlang.org/download/otp_src_22.0.tar.gz
wget https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.18
确保系统已有openssl,若没有可先安装。
先安装erlang,再安装rabbitmq
配置rabbitmq集群
1.先将集群节点的hostname修改为rabbitM1、rabbitM2,名称自定,可能需要重启设备生效
2.修改/etc/hosts,添加节点名称解析
3.rabbitMQ以默认$HOME目录的.erlang.cookie值确定集群,可将其他节点的文件以节点1的覆盖,建议以scp方式,并将权限设置为600
4.逐个节点启动RabbitMQ服务
rabbitmq-server -detached
5. 查看各个节点集群的工作运行状态
rabbitmqctl cluster_status
- 注意节点名称和之前配置一致,否则需要重新配置hostname或重启
6.在rabbitM2主机上执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@M1
- 显示此信息即为添加成功,需要更多节点依此类推
7.后续配置在一个节点操作即可生效于其他节点
- 查看用户
rabbitmqctl list_users
- 添加用户
rabbitmqctl add_user admin 123456
- 设置用户角色
rabbitmqctl set_user_tags admin administrator
- 设置用户权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
8.在RabbitMQ集群中的节点只有两种类型:内存节点/磁盘节点,单节点系统只运行磁盘类型的节点。而在集群中,可以选择配置部分节点为内存节点。
内存节点将所有的队列,交换器,绑定关系,用户,权限,和vhost的元数据信息保存在内存中。而磁盘节点将这些信息保存在磁盘中,但是内存节点的性能更高,为了保证集群的高可用性,必须保证集群中有两个以上的磁盘节点,来保证当有一个磁盘节点崩溃了,集群还能对外提供访问服务。在上面的操作中,可以通过如下的方式,设置新加入的节点为内存节点还是磁盘节点:
-
加入时候设置节点为内存节点(默认加入的为磁盘节点)
rabbitmqctl join_cluster rabbit@rabbitM1 --ram
-
也通过下面方式修改的节点的类型
rabbitmqctl changeclusternode_type disc | ram