RabbitMQ镜像集群配置
- RabbitMQ镜像集群配置
- 创建镜像集群:
- 镜像队列策略设置说明
RabbitMQ镜像集群配置
上面已经完成RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复制。但队列节点宕机直接导致该队列无法应用,只能等待重启,所以要想在队列节点宕机或故障也能正常应用,就要复制队列内容到集群里的每个节点,必须要创建镜像队列。镜像队列是基于普通的集群模式的,然后再添加一些策略,所以你还是得先配置普通集群,然后才能设置镜像队列,以上面的集群接着做。保证各个节点之间数据同步
创建镜像集群:
rabbitmqctl set_permissions ".*" ".*" ".*" #后面三个”*”代表用户拥有配置、写、读全部权限
rabbitmqctl set_policy -p coresystem ha-all "^" '{"ha-mode":"all"}'
浏览器查看队列已经同步到其他两台节点
镜像队列策略设置说明
rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]-p Vhost:可选参数,针对指定vhost下的queue进行设置Name:policy的名称Pattern:queue的匹配模式(正则表达式)Definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
ha-mode:指明镜像队列的模式,有效值为all/exactly/nodes
ha-params:ha-mode模式需要用到的参数
ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual
all:表示在集群中所有的节点上进行镜像
exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定priority:可选参数,policy的优先级