Rabbitmq 创建集群
更改host
两台主机rabbit1:192.168.1.112,rabbit2:192.168.1.113
host配置如下:rabbit1 192.168.1.112
rabbit2 192.168.1.113同步erlang.cookie
将rabbit1 C:\users{user name}\erlang.cookie 文件覆盖rabbit2中的文件。加入集群
rabbit2加入到rabbit1节点rabbitmqctl stop_app –关掉rabbit2服务
rabbitmqctl join_cluster rabbit@rabbit1 –加入集群
rabbitmqctl start_app –启动rabbit2服务查看集群信息
rabbitmqctl cluster_status
更改节点属性
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc/ram –更改当前节点为磁盘/内存节点
rabbitmqctl start_appdisc表示磁盘节点,ram表示内存节点,集群中至少存在一个磁盘节点。
cookie 在所有节点上必须完全一样,同步时一定要注意RABBITMQ HA
镜像队列概念
镜像队列可以同步queue和message,当主queue挂掉,从queue中会有一个变为主queue来接替工作。
镜像队列是基于普通的集群模式的,所以你还是得先配置普通集群,然后才能设置镜像队列。
镜像队列设置后,会分一个主节点和多个从节点,如果主节点宕机,从节点会有一个选为主节点,原先的主节点起来后会变为从节点。
queue和message虽然会存在所有镜像队列中,但客户端读取时不论物理面连接的主节点还是从节点,都是从主节点读取数据,然后主节点再将queue和message的状态同步给从节点,因此多个客户端连接不同的镜像队列不会产生同一message被多次接受的情况。配置镜像队列
rabbitmqctl set_policy ha-all “hello” “{“ha-mode”:”all”}”
ha-all 是同步模式,指同步到所有的节点,还有另外两种模式
ha-exactly
表示在指定个数的节点上进行镜像,节点的个数由ha-params
指定,ha-nodes
表示在指定的节点上进行镜像,节点的名称通过ha-params
指定。
hello 是同步的队列名,可以用正则表达式表示。