第三部分——队列镜像配置
在完成RB集群配置之后,在高可用性已经向前走了一步,在了解了RB集群的特点之后,我们知晓RB中Queue的消息只存在于对应的接收节点,这种情况当对应的存储消息的节点(或称主服务)异常宕机的情况下,就存在消息丢失的可能,怎么改善这种应用场景,RB为我们提供了镜像队列(Mirror Queue)的方式。(http://www.rabbitmq.com/ha.html)
镜像队列的特点:
归纳后,主要有这么几点:
1、 镜像模式配置完成之后,会存在一个主队列和多个镜像队列(或称为热备队列,Slaves),主队列在收到消息后,会同步消息至当前所有的镜像,若主队列消息被处理删除之后,镜像队列的数据会同步删除;
2、 当主队列异常宕掉后,RB会提升镜像队列中、早作为镜像服务的队列为主队列,其他的继续为当前主队列的镜像队列。
镜像队列是通过RB的配置策略(policy)来实现的,
镜像队列提供了三种模式:
Ø all:全部的节点队列都做镜像;
Ø exactly:指定镜像队列的节点最高镜像数量;
Ø nodes:只为指定具体节点配置镜像队列;
Pattern的内容是正则表达式,以截图中的 ‘^Q’为例,表示以Q开头的所有队列名称都有镜像,其他的队列不设置镜像。
第四部分——NLB,为RB配置负载均衡
搭建的步骤参考:
http://blog.csdn.net/haoxiaozigang1/article/details/12198679
一步一步配置NLB(续)之深入测试http://blog.csdn.net/haoxiaozigang1/article/details/12444963
第五部分——测试代码
参考了其他的文章
http://www.cnblogs.com/rollenholt/p/4098089.html
http://jingyan.baidu.com/article/e73e26c0c3841b24adb6a7b9.html
http://blog.csdn.net/haoxiaozigang1/article/details/12444963
http://www.cnblogs.com/me-sa/archive/2012/11/15/rabbitmq_cluster_mirrored_queue.html