在实际使用过程中,使用单台配置,万一出现意外情况,将导致我们的服务终断,因此需要搭建集群的方式来最高限度的提高服务的可用性。

一、事先准备:

1.两台windows主机,当然也可以用虚拟机。

2.安装erlang以及rabbitmq

二、安装完成的单台rabbitmq服务情况

1.两台windows主机rabbitmq相关内容:

  a:192.168.0.88 rabbitmq节点名称:rabbit@LAPTOP-UO88M5R6

  b: 192.168.0.184 rabbitmq节点名称:rabbit@USER-20160306SN

节点名称如何查看?(节点名称要和主机名称保持一致,要注意大小写

在rabbitmq安装目录 sbin 下执行 rabbitmqctl status,出现如下界面:红色框内的为当前主机rabbitmq的节点名称。

2.配置文件

a).集群配置文件(两台主机都需要配置),在路径C:\Users\Administrator\AppData\Roaming\RabbitMQ (AppData默认隐藏,需要设置显示隐藏文件)中,创建rabbitmq.config文件,内容为:[{rabbit,[{cluster_nodes, ['rabbit@LAPTOP-UO88M5R6', 'rabbit@USER-20160306SN']}]}]. (包括最后的 .)。

b).hosts文件设置,在路径C:\Windows\System32\drivers\etc 中修改hosts文件。

b.1>192.168.0.88:

192.168.0.88 rabbit@LAPTOP-UO88M5R6

192.168.0.184 rabbit@USER-20160306SN

b.2>192.168.0.184:

192.168.0.184 rabbit@USER-20160306SN

192.168.0.88 rabbit@LAPTOP-UO88M5R6

c).配置环境变量文件,在C:\Users\Administrator\AppData\Roaming\RabbitMQ 路径中,创建rabbitmq-env.conf

c.1>192.168.0.88中文件内容为:

NODENAME=rabbit@LAPTOP-UO88M5R6
NODE_IP_ADDRESS=192.168.0.88
NODE_PORT=5672
RABBITMQ_MNESIA_BASE=C:\Users\jony\AppData\Roaming\RabbitMQ\db
RABBITMQ_LOG_BASE=C:\Users\jony\AppData\Roaming\RabbitMQ\log

   c.2>192.168.0.184中文件内容为: 

NODENAME=rabbit@USER-20160306SN
NODE_IP_ADDRESS=192.168.0.184
NODE_PORT=5672
RABBITMQ_MNESIA_BASE=C:\Users\Administrator\AppData\Roaming\RabbitMQ\db
RABBITMQ_LOG_BASE=C:\Users\Administrator\AppData\Roaming\RabbitMQ\log

3..erlang.cookie文件统一(此文件用户集群之间通信秘钥,必须一致)

将192.168.0.88中C:\Users\jony中的.erlang.cookie 的文件替换掉192.168.0.184 中 C:\Users\Administrator

和C:\Windows\System32\config\systemprofile 目录中的 .erlang.cookie

4.重启服务

a).192.168.0.184

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl start_app

b).192.168.0.88

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster rabbit@USER-20160306SN

rabbitmqctl start_app

通过以上命令集群基本就配置好了。

访问 rabbitmq管理后台,出现如下界面则表示成功:

需要注意的是,搭建集群建议最少设置一个磁盘节点,防止机器意外关机等、丢失数据。

rabbitmq集群有两种节点 磁盘节点和内存节点。字面上了解,磁盘节点的数据存储在磁盘,内存节点的数据存储的内存中。因此存储速度方面内存节点有优势,数据安全方面磁盘节点有优势。

rabbitmq启动后默认是磁盘节点,如果要使用内存节点那么在 搭建集群的时候,在上方重启服务中的rabbitmqctl join_cluster rabbit@USER-20160306SN

命令修改为 rabbitmqctl join_cluster --ram rabbit@USER-20160306SN,这样配置之后

192.168.0.88的节点就为内存节点了。

5.镜像配置

此配置的作用,为了同步消息,如给A节点发送一条消息,则自动同步到B节点。配置如下:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐