RabbitMQ ——windows安装 集群配置(rabbitmq之二)
RabbitMQ ——windows安装 集群配置(rabbitmq之二)
rabbitMQ 集群配置
上文安装完了rabbitmq, 直通车查看。
如果在实际使用过程中,使用单台配置,万一出现意外情况,将导致我们的服务终断,因此需要搭建集群的方式来最高限度的提高服务的可用性。
一、事先准备:
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 LAPTOP-UO88M5R6
192.168.0.184 USER-20160306SN
b.2>192.168.0.184:
192.168.0.184 USER-20160306SN
192.168.0.88 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 目录中的 .erlang.cookie
和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
rabbitmqctljoin_clusterrabbit@USER-20160306SN
rabbitmqctl start_app
通过以上命令集群基本就配置好了。
访问 rabbitmq管理后台,出现如下界面则表示成功:
需要注意的是,搭建集群建议最少设置一个磁盘节点,防止机器意外关机等、丢失数据。
rabbitmq集群有两种节点 磁盘节点和内存节点。字面上了解,磁盘节点的数据存储在磁盘,内存节点的数据存储的内存中。因此存储速度方面内存节点有优势,数据安全方面磁盘节点有优势。
rabbitmq启动后默认是磁盘节点,如果要使用内存节点那么在 搭建集群的时候,在上方重启服务中的 rabbitmqctljoin_cluster rabbit@USER-20160306SN
命令修改为 rabbitmqctljoin_cluster --ram rabbit@USER-20160306SN,这样配置之后
192.168.0.88的节点就为内存节点了。
5.镜像配置
此配置的作用,为了同步消息,如给A节点发送一条消息,则自动同步到B节点。配置如下: