title:RabbitMQ 消息中间机制以及数据补偿策略
了解RabbitMQ 机制
RabbitMQ 能做什么
一直工作中都有使用到RabbitMQ 而最近的工作同样遇到针对于RabbitMQ的问题无法解释甚至解决,意识到“好记性不如烂笔头” 的真理,借此机会,开始深入对rabbitMQ消息机制的深入认识。
RabbitMQ 是实现了AMQP的面向消息的中间件,日常工作中常实现异步消息的交互,解耦拆分,消息推送等等。学习RabbitMQ 需要了解其AMQP 0-9-1模式的原理。
AMQP协议
RabbitMQ是Advanced Message Queuing Protocol (AMQP,高级消息队列协议)开放标准的实现,最新的RabbitMQ主要是基于AMQP 0-9-1来实现。
AMQP 是一个网络协议。它支持符合要求的客户端应用(application)和消息中间件代理(messaging middleware broker)之间进行通信。主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
笔者通俗的理解就是发布者推送消息,消息不是立即推送到订阅者的,而是会存放在一个容器中,通过容器允许配置约定两方的通讯的条件,当满足约定的条件之后,消息会被容器推送到订阅者。AMQP就是这样的一种协议,消息发送与接受的双方遵守这个协议可以实现异步通讯。协议同时规定了消息的格式和工作方式。
事到如今,展示下AMQP 机制如下图所示: