RabbitMQ学习之集群消息可靠性测试

之前介绍过关于消息发送和接收的可靠性:RabbitMQ学习之消息可靠性及特性 
下面主要介绍一下集群环境下,rabbitmq实例宕机的情况下,消息的可靠性。验证rabbitmq版本【3.4.1】。 
集群环境要求: 
1.集群中至少有一台硬盘节点 
2.加入集群中有一台内存节点,一台硬盘节点,需要先启动硬盘节点。单节点不能设置为内存节点 
集群环境:

节点名称节点类型
vm-129 硬盘
vm-130 内存

 
验证结论: 
1.vm-129、vm-130节点都可以创建持久化队列及发送持久化消息 
2.当vm-130宕机 
1)vm-130的内存队列丢失,持久化队列不可读、不可写 
2)vm-129原有队列可读写,可以创建持久化队列及发送持久化消息,并能读写 
3)vm-130重启,持久化消息存在,并能正常读写 
3.当vm-129宕机 
1)vm-129的内存队列丢失,持久化队列不可读、不可写 
2)vm-130原有队列可读写,可以创建持久化队列及发送持久化消息,并能读写 
3)vm-129重启,持久化消息存在,并能正常读写 
3.当vm-130先宕机 
1)在vm-129内写持久化队列和消息Q1 
2)vm-130重启后,再把vm-129宕机,再将vm-129重启 
3)Q1消息仍然存在,并能正确消费 
4.当vm-130先宕机 
1)在A内写持久化队列和消息Q2 
2)再把vm-129宕机,再将vm-129、vm-130集群重启 
3)Q2消息丢失 
内存节点数据目录: 
 
硬盘节点数据目录: 

参考文档 
1.rabbitMQ源码分析 – 持久化机制 
2.RabbitMQ概念及环境搭建(四)RabbitMQ High Availability

posted @ 2017-07-06 10:10  疯子110  阅读(371)  评论(0编辑  收藏  举报