Reliability 可靠性(raliable delivery)。
在系统发生各种故障的情况下,如何使用AMQP协议的相关内容和RabbitMQ的特性来实现高可靠性的消息传递。
Reliability Guide
归类:
(1)网络连接问题;
(2)服务端和客户端的硬件故障和软件崩溃;
(3)客户端代码错误导致的Connection和Channel意外关闭。
一 网络连接
Acknowledgements and Confirms机制用来确保应用之间没有因为网络问题而导致的消息丢失。
同时,Java客户端为Connection和Channel类提供了连接关闭的回调 ShutdownListener callback。
关于Heartbeat Timeout 和 Heartbeat Frame
超过前者规定的时间,就认为系统中的两个组件之间网络连接丢失,通过发送Heartbeat Frame 来检测网络连接性 heartbeat interval = heartbeat timeout value / 2 。
通过Heartbeat Timeout也可以组织系统中某些软件将闲置的网络连接断开,比如杀毒软件或者防火墙等。
集群中节点间的网络监测:
Net Tick Time - RabbitMQ