安装RabbitMQ并配置web管理端开启这个就不赘述了,确保三台服务都能够正常启动, 并可以访问web管理页面就接着往下走
1. 保证所有RabbitMQ服务cookie一致
具体做法是: 找到一台服务的cookie, 覆盖到其他服务
- cookie文件位置: C:\Users\zhang.san\.erlang.cookie
C:\Windows\System32\config\systemprofile\.erlang.cookie 下也存在cookie文件, 是windows服务使用的cookie, 这里的user 文件夹下的cookie一般是控制台启动服务的cookie
假如有三台服务器, 那么二话不说把这三台服务的 cookie 文件整成一样就完事儿了
2. 保证所有RabbitMQ能互相找到, 需要配置hosts文件
服务器在同一网段可忽略此步骤
hosts 文件位置: C:\Windows\System32\drivers\etc\hosts
在hosts 文件下面添加
10.46.12.133 L692ER38A216
10.46.12.134 L692FD58A217
# 10.46.12.135 L69DF428A218
目的是让任一服务都能够找到其他两个服务
3. 集群节点加入
- 进入第一台服务, 按步骤执行以下命令
// 停止windows服务
rabbitmq-service stop
// 以detached模式启动服务, (此命令执行后在任务管理器会看到一个erlang进程)
rabbitmq-server -detached
// 启动rabbitmqctl
rabbitmqctl start_app
如果rabbitmqctl 命令报错, 可查看任务管理器, 杀掉Erlang进程, 然后再执行上面命令即可
- 进入第二台服务, 按步骤执行以下命令
rabbitmq-service stop
rabbitmq-server -detached
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@NodeA
rabbitmqctl start_app
- 进入第三台服务, 重复上一步命令
rabbitmq-service stop
rabbitmq-server -detached
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@NodeA
rabbitmqctl start_app
所有命令不报错, 打开web管理工具Overview模块查看, 每个服务的node都包含其他两个服务, 即成功
还可以通过 rabbitmqctl status 命令查看节点状态, 通过rabbitmqctl cluster_status命令查看集群状态
4. 移除RabbitMQ集群中的某个节点
- 假如移除A节点, 先在A节点执行以下命令停掉A节点
rabbitmqctl stop_app
- 在其他任意节点执行以下命令, 移除A节点
rabbitmqctl forget_cluster_node rabbit@NodeA
- 在A节点执行重置操作, 再启动A节点
rabbitmqctl reset
rabbitmqctl start_app
进入A节点界面查看, A 节点已经独立运行, 进入集群节点查看, A节点被移除
5. 添加用户
默认的guest用户只能在Rabbitmq的安装机器上以localhost登录, 如果需要在自己电脑上访问Rabbitmq web界面, 可通过以下命令添加新账号, 用于登录
rabbitmqctl add_user zhangsan pwd_123
rabbitmqctl set_permissions -p / zhangsan ".*" ".*" ".*"
rabbitmqctl set_user_tags zhangsan management