1、安装Eralng和Rabbitmq在电脑中,这点不用说,网上一大堆方法。(默认的端口时5672,服务的web时15672)
2、由于是要在windows开启多个Rabbitmq服务,就不能在环境变量中设置RABBITMQ_NODE_PORT和RABBITMQ_NODENAME这两个属性,应该在环境配置文件中修改,以下一步步分解过来
2.1)复制安装目录下的sbin/的所有bat文件,依然保存在sbin中,不过必须重命名,我是在后面添加-cluster1
rabbitmq-defaults.bat
rabbitmq-diagnostics-cluster1.bat
rabbitmq-diagnostics.bat
rabbitmq-echopid-cluster1.bat
rabbitmq-echopid.bat
rabbitmq-env-cluster1.bat
rabbitmq-env.bat
rabbitmq-plugins-cluster1.bat
rabbitmq-plugins.bat
rabbitmq-server-cluster1.bat
rabbitmq-server.bat
rabbitmq-service-cluster1.bat
rabbitmq-service.bat
rabbitmqctl-cluster1.bat
rabbitmqctl.bat
同时设置windows的配置环境添加 RABBITMQ_BASE=rabbitmq的安装根目录(这一步很重要),这是因为在rabbitmq-env.bat中存在了大量的根目录宏RABBITMQ_BASE,rabbitmq需要借此找到根目录,或者你也可以直接在rabbitmq-env.bat定义RABBITMQ_BASE的值而不再环境变量中添加,这里由于我不太懂Erlang所以暂时跳过。
2.2)修改rabbitmq的web页面的端口
在安装目录下,找到etc/rabbitmq.config.example,复制并重命名到同一目录下,例如rabbitmq-cluster1.config,修改其中的542的listener内容
{listener, [{port, 15673},
{ip, "127.0.0.1"},
{ssl, false}]}
2.3)修改rabbitmq-env-cluster1.bat
rabbitmq-env-cluster1.bat应该时表示rabbitmq服务的环境变量的定义,所以这里要添加RABBITMQ_NODE_PORT以及服务器名RABBITMQ_NODENAME,添加到16行的下面,同时也要修改web的端口号,这里只需要把RABBITMQ_CONFIG_FILE指向配置文件的地址
set RABBITMQ_NODENAME=rabbit1@node1
set RABBITMQ_NODE_PORT=5673
set RABBITMQ_CONFIG_FILE=%RABBITMQ_BASE%\etc\rabbitmq-cluster1.config
2.4)修改rabbitmq-service-cluster1.bat脚本的环境文件的位置,找到下面这一句的位置
call "%TDP0%\rabbitmq-env.bat" %~n0
然后修改成我们新的env文件名
call "%TDP0%\rabbitmq-env-cluster1.bat" %~n0
2.5)光是修改了web的监听端口还是不行,因为web只是一个插件,你还需要重新设置插件才行
打开rabbitmq-plugins-cluster1.bat,找到下面这句
call "%TDP0%\rabbitmq-env.bat" %~n0
修改成我们新的env文件的位置
call "%TDP0%\rabbitmq-env-cluster1.bat" %~n0
然后在sbin目录下执行命令
.\rabbitmq-plugins-cluster1.bat enable rabbitmq_management
2.6)这样就可以启动端口号为5673的服务
./rabbitmq-service-cluster1.bat
2.7)搭建单机伪集群
修改rabbitmq-diagnostics-cluster1.bat和rabbitmqctl-cluster1.bat,将其中的环境变量文件指向该节点的环境变量文件
call "%TDP0%\rabbitmq-env-cluster1.bat" %~n0
这样我们就修改了全部的cluster1节点的脚本的环境变量文件,这样启动时就回去寻找该环境变量文件。
接下来reset节点1的元数据(rabbitmqctl会实现找到环境变量文件对应的端口的Rabbitmq,所以可以不用指定-n)
.\rabbitmqctl-cluster1.bat reset
然后关闭该节点,并将该节点假如到当前运行中的节点上去(使用join_cluster),然后重启
.\rabbitmqctl-cluster1.bat stop_app
.\rabbitmqctl-cluster1.bat join_cluster rabbit@XXXX
.\rabbitmqctl-cluster1.bat start_app
这样伪集群就搭建好了,也可以在各个节点的web中看到结果