Windows多台服务器搭建RabbitMQ集群

安装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都包含其他两个服务, 即成功


overview

还可以通过 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。