windows上运行rabbitmq集群

来源:互联网 发布:淘宝怎么发视频评价 编辑:程序博客网 时间:2024/06/07 06:54

概述

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

修改Hosts

增加

127.0.0.1   node1127.0.0.1   node2127.0.0.1   node3

复制文件

在sbin目录下复制脚本文件

copy rabbitmq-server.bat rabbitmq-server-node1.batcopy rabbitmq-server.bat rabbitmq-server-node2.batcopy rabbitmq-server.bat rabbitmq-server-node3.batcopy rabbitmqctl.bat rabbitmqctl-node1.batcopy rabbitmqctl.bat rabbitmqctl-node2.batcopy rabbitmqctl.bat rabbitmqctl-node3.batcopy rabbitmq-env.bat rabbitmq-env-node1.batcopy rabbitmq-env.bat rabbitmq-env-node2.batcopy rabbitmq-env.bat rabbitmq-env-node3.batcopy rabbitmq-plugins.bat rabbitmq-plugins-node1.batcopy rabbitmq-plugins.bat rabbitmq-plugins-node2.batcopy rabbitmq-plugins.bat rabbitmq-plugins-node3.bat

在etc目录下复制配置文件

copy rabbitmq.config.example rabbitmq-node1.configcopy rabbitmq.config.example rabbitmq-node2.configcopy 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 node1set RABBITMQ_CONFIG_FILE=!RABBITMQ_HOME!\etc\rabbitmq-node1set RABBITMQ_BASE=!RABBITMQ_HOME!\sbin\rabbitmq-clusterset RABBITMQ_NODENAME=rabbit1@node1set RABBITMQ_NODE_PORT=9991set 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.batrabbitmq-server-node2.batrabbitmq-server-node3.bat

添加node2到node1的cluster中

rabbitmqctl-node2.bat stop_apprabbitmqctl-node2.bat resetrabbitmqctl-node2.bat join_cluster rabbit1@node1rabbitmqctl-node2.bat start_apprabbitmqctl-node2.bat cluster_status

添加node3到node1的cluster中

rabbitmqctl-node3.bat stop_apprabbitmqctl-node3.bat resetrabbitmqctl-node3.bat join_cluster rabbit1@node1 --ram rabbitmqctl-node3.bat start_apprabbitmqctl-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/ 随便一个都可以

cluster

总结

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