rabbitmq单机多节点搭建

这个是搭建单机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 分别被设置为 磁盘 和 内存类型。
至此,单机多节点集群搭建完毕!

猜你喜欢

转载自blog.csdn.net/qq_34362409/article/details/100141782