在Windows中单机环境下创建RabbitMQ集群
本文根据:http://www.360doc.com/content/15/0312/17/20874412_454622619.shtml整理而来
RabbitMQ具有很好的消息传递性能,同时又是开源软件,使用范围较广。
因为自己使用的是Windows系统,因此简而言之入手点自然就是RabbitMQ提供的bat文件了。RabbitMQ提供了5个bat文件,分别是:rabbitmq-service.bat,rabbitmq-server.bat,rabbitmq-plugins.bat,rabbitmq-echopid.bat以及rabbitmqctl.bat。我们先从rabbitmq-server.bat和rabbitmqctl.bat入手。
我们准备搭建的是拥有两个Node节点的Cluster,这里分别取名Cluster-Node1和ClusterNode2。每个Node当然要有自己的bat文件啦,因此以上两个bat就变成了4个:
rabbitmq-server-cluster-1.bat,rabbitmq-server-cluster-2.bat,rabbitmqctl-cluster-1.bat和rabbitmqctl-cluster-2.bat。这里就说一下如何修改吧。
1.配合Hosts文件
需要修改Windows中的hosts文件。既然要在一台机器上模拟两个Node,那么自然要配置一下两个Node的ip了,在hosts文件中添加如下两段:
127.0.0.1 Cluster-Node1
127.0.0.1 Cluster-Node2
保存。
2.修改rabbitmq-server.bat
在rabbitmq-server*中添加
set RABBITMQ_CONFIG_FILE="C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.2\etc\cluster-1" //其中路径为当前节点的config文件所在路径
该参数主要用于配置RabbitMQ的Config文件,默认情况下*-server.bat中不包含该路径,所以需要手工创建。在Config文件中可以配置RabbitMQ的各种参数,对以后的学习研究很有帮助。这里第二个参数便是设置了Config文件的路径。
然后再添加(或者直接修改也是ok的)
set RABBITMQ_NODENAME=rabbit1@Cluster-Node1
在单机环境下配置RabbitMQ集群时候要保证每一个节点都具有唯一的节点名称和端口号。该语句就是设置RabbitMQ节点的节点名称。
注意:在RabbitMQ中@符号将节点标识符(rabbit1@Cluster-Node1)分为两个部分。左边是ERlang的应用程序名称,右边是服务器主机名或者IP地址。
然后修改节点端口号:
set RABBITMQ_NODE_PORT=9991
最后
set RABBITMQ_DIST_PORT=15672
这样rabbitmq-server的两个文件就修改完了,点击保存。
3.修改Rabbitmqctl.bat
在rabbitmqctl-cluster-*中修改.这两个文件就很简单了:
set RABBITMQ_NODENAME=rabbit1@Cluster-Node1
4. 创建集群
首先,先运行rabbitmqctl-cluster-*文件,将两个server启动起来。之后运行rabbitmqctl-cluster-2 stop_app,将Node2先挂起来。再运行
rabbitmqctl-cluster-2 join_cluster rabbit1@Cluster-Node1
这样就将Node2加入了Node1的集群。
注意:在加入新节点时,首先要停止Erlang节点上运行的RabbitMQ程序,并重设(清空)它们的元数据。这样它们才能被加入并获取集群的元数据。
5.激活节点
rabbitmqctl-cluster-2 start_app
6. 查看集群状态
其中DISC节点代表磁盘节点,RAM代表内存节点。