这个是搭建单机rabbitmq的链接:
https://blog.csdn.net/qq_34362409/article/details/98494164
RabbitMQ单机集群搭建
安装好单机环境之后
下面开始正式搭建单机集群环境:
到rabbitmq安装目录的sbin目录下启动rabbitmq服务,并查看状态
./rabbitmq-server -detached
./rabbitmqctl status
其中会显示这一段信息
{listeners,
[{clustering,25672,"::"},
{amqp,5672,"127.0.0.1"},
{mqtt,1883,"::"},
{stomp,61613,"::"},
{http,15672,"::"}]},
一般的文章或者书籍,上来就会让你执行类似于下面的命令:
不过我觉得对于新人来说过于简陋和不负责任!!!
RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit rabbitmq-server -detached
RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit1 rabbitmq-server -detached
RABBITMQ_NODE_PORT=5674 RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached
如果你按照类似的文章操作,也许你会成功,但我想大多数可能会遇到错误提示,而且很棘手,让人很无语。
官方文档中关于集群的指导中也是这样提到
./rabbitmqctl status
默认启动的是rabbit@localhost
如果在启动过程,你不指定hostname,那默认都是localhost,假如你的hosts又没有配置127.0.0.1 localhost 的话,就会报下面的错了。
ERROR: epmd error for host localhost: nxdomain (non-existing domain)
3.启动第一个节点
指定特定hostname启动的,当然你也可以指定 为localhost。
RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit@ydtech ./rabbitmq-server
4、启动第二个节点
RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}] -rabbitmq_stomp tcp_listeners [61614] -rabbitmq_mqtt tcp_listeners [1884]" RABBITMQ_NODENAME=rabbit1 ./rabbitmq-server -detached
如果启动正常,会显示下面的提示:

Warning: PID file not written; -detached was passed.
当然,你也可以查看当前节点状态,注意不能使用:./rabbitmqctl status,否则会报错,
这里需要指定节点名称:./rabbitmqctl status -n rabbit1
同理你可以启动节点3,相应的端口号+1即可,只要不冲突就行。
#节点3
RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}] -rabbitmq_stomp tcp_listeners [61615] -rabbitmq_mqtt tcp_listeners [1885]" RABBITMQ_NODENAME=rabbit2 ./rabbitmq-server -detached
5、集群操作
a.把节点rabbit1 加入 rabbit中
1.停止第二个节点的应用程序
./rabbitmqctl -n rabbit1@ydtech stop_app
1
2.重新设置第二个节点的元数据和状态为清空状态。
./rabbitmqctl -n rabbit1@ydtech reset
3.加入第一节点
./rabbitmqctl -n rabbit1@ydtech join_cluster rabbit@ydtech
4.重新启动第二节点
./rabbitmqctl -n rabbit1@ydtech start_app
web端可以看到集群已经存在了!!!
b.把rabbit2加入rabbit
1.停止第三个节点的应用程序
./rabbitmqctl -n rabbit2@ydtech stop_app
2.重新设置第三个节点的元数据和状态为清空状态。
./rabbitmqctl -n rabbit2@ydtech reset
3.加入第一节点
./rabbitmqctl -n rabbit2@ydtech join_cluster rabbit@ydtech
4.重新启动第三个节点
./rabbitmqctl -n rabbit2@ydtech start_app
如果你需要设置第三个集群节点为内存模式,而非磁盘模式,可以参考当前版本的命令提示,在最后加上 –ram 参数
查看集群状态
./rabbitmqctl cluster_status -n rabbit@ydtech
Cluster status of node 'rabbit@ydtech
[{nodes,[{disc,[‘rabbit1@ydtech’,
‘rabbit@ydtech’]},
{ram,[‘rabbit2@ydtech’]}]},
{running_nodes,[‘rabbit2@ydtech’,
‘rabbit1@ydtech’,
‘rabbit@ydtech’]},
{cluster_name,<<“rabbit@ydtech”>>},
{partitions,[]},
{alarms,[{‘rabbit2@ydtech’,[]},
{‘rabbit1@ydtech’,[]},
{‘rabbit@ydtech’,[]}]}]
点击节点名称可以查看详细信息,
节点2 和节点3 分别被设置为 磁盘 和 内存类型。
至此,单机多节点集群搭建完毕!