windows上运行rabbitmq集群

概述

在windows 10上实现运行rabbitmq cluster,含三个节点,并能同时启用rabbitmq_management插件,实现web管理。rabbitmq版本为:rabbitmq-server-windows-3.6.6

修改Hosts

增加

127.0.0.1   node1
127.0.0.1   node2
127.0.0.1   node3

复制文件

在sbin目录下复制脚本文件

copy rabbitmq-server.bat rabbitmq-server-node1.bat
copy rabbitmq-server.bat rabbitmq-server-node2.bat
copy rabbitmq-server.bat rabbitmq-server-node3.bat

copy rabbitmqctl.bat rabbitmqctl-node1.bat
copy rabbitmqctl.bat rabbitmqctl-node2.bat
copy rabbitmqctl.bat rabbitmqctl-node3.bat

copy rabbitmq-env.bat rabbitmq-env-node1.bat
copy rabbitmq-env.bat rabbitmq-env-node2.bat
copy rabbitmq-env.bat rabbitmq-env-node3.bat

copy rabbitmq-plugins.bat rabbitmq-plugins-node1.bat
copy rabbitmq-plugins.bat rabbitmq-plugins-node2.bat
copy rabbitmq-plugins.bat rabbitmq-plugins-node3.bat

在etc目录下复制配置文件

copy rabbitmq.config.example rabbitmq-node1.config
copy rabbitmq.config.example rabbitmq-node2.config
copy rabbitmq.config.example rabbitmq-node3.config

修改文件

以下只展示node1的修改步骤,node2和node3的RABBITMQ_CONFIG_FILE,RABBITMQ_NODENAME, RABBITMQ_NODE_PORT, RABBITMQ_DIST_PORT还有listener port改成不一样的即可。

修改rabbitmq-env-node1.bat

在开头大概16行左右添加

REM node1
set RABBITMQ_CONFIG_FILE=!RABBITMQ_HOME!\etc\rabbitmq-node1
set RABBITMQ_BASE=!RABBITMQ_HOME!\sbin\rabbitmq-cluster
set RABBITMQ_NODENAME=rabbit1@node1
set RABBITMQ_NODE_PORT=9991
set RABBITMQ_DIST_PORT=16671

确保RABBITMQ_HOME已经定义好;RABBITMQ_BASE把rabbit数据等目录移到sbin目录下,好方便删除重建。

修改rabbitmq-server-node1.bat

call "%TDP0%\rabbitmq-env.bat" %~n0 -> call "%TDP0%\rabbitmq-env-node1.bat" %~n0

修改rabbitmq-server-node1.bat

call "%TDP0%\rabbitmq-env.bat" %~n0 -> call "%TDP0%\rabbitmq-env-node1.bat" %~n0

修改rabbitmq-plugins-node1

call "%TDP0%\rabbitmq-env.bat" %~n0 -> call "%TDP0%\rabbitmq-env-node1.bat" %~n0

修改rabbitmq-node1.config

{rabbitmq_management下找到

   %% {listener, [{port,     12345},
   %%             {ip,       "127.0.0.1"},
   %%             {ssl,      true},
   %%             {ssl_opts, [{cacertfile, "/path/to/cacert.pem"},
   %%                         {certfile,   "/path/to/cert.pem"},
   %%                         {keyfile,    "/path/to/key.pem"}]}]},

改成

   {listener, [{port,     15671},
               {ip,       "127.0.0.1"},
               {ssl,      false}
   ]}

注意括号的闭合问题

启用插件

在命令行中sbin目录下执行
rabbitmq-plugins-node1 enable rabbitmq_management

因为三个节点是共用一个插件开关配置文件(!RABBITMQ_HOME!\sbin\rabbitmq-cluster\enabled_plugins),所以只要执行node1的即可。

启动Server及添加节点

启动三个节点

rabbitmq-server-node1.bat
rabbitmq-server-node2.bat
rabbitmq-server-node3.bat

添加node2到node1的cluster中

rabbitmqctl-node2.bat stop_app
rabbitmqctl-node2.bat reset
rabbitmqctl-node2.bat join_cluster rabbit1@node1
rabbitmqctl-node2.bat start_app
rabbitmqctl-node2.bat cluster_status

添加node3到node1的cluster中

rabbitmqctl-node3.bat stop_app
rabbitmqctl-node3.bat reset
rabbitmqctl-node3.bat join_cluster rabbit1@node1 --ram 
rabbitmqctl-node3.bat start_app
rabbitmqctl-node3.bat cluster_status

查看集群状态

在命令行中执行rabbitmqctl-node2.bat cluster_status

Cluster status of node rabbit3@node3 ...
[{nodes,[{disc,[rabbit2@node2,rabbit1@node1]},{ram,[rabbit3@node3]}]},
 {running_nodes,[rabbit1@node1,rabbit2@node2,rabbit3@node3]},
 {cluster_name,<<"rabbit1@njun">>},
 {partitions,[]},
 {alarms,[{rabbit1@node1,[]},{rabbit2@node2,[]},{rabbit3@node3,[]}]}]

在Web中查看

访问:http://127.0.0.1:15671/, http://127.0.0.1:15672/, http://127.0.0.1:15673/ 随便一个都可以

windows上运行rabbitmq集群_第1张图片

总结

  • 因为是在同一机器上,所有不需要同步hosts文件及cookie
  • 启动信息可以在rabbitmq-cluster/log目录下查看
  • 删除rabbitmq-cluster目录又可以重建cluster
  • 如果不修改rabbitmq_management端口,则有可能导致节点之间端口冲突

你可能感兴趣的:(backend)