1.1 什么是消息中间件
消息(Message)是指在应用间传送的数据。
消息队列中间件(Message Queue Middleware,简称MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
消息队列中间件一般有两种传递模式:
- 点对点模式(P2P)。
- 发布/订阅模式(Pub/Sub)模式。
点对点模式是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传输成为可能。
发布订阅模式定义了如何向一个内容节点发布和订阅消息,这个内容节点称为主题(topic),主题可以认为是消息传递的中介,消息发布者将消息发布到某个主题,而消息订阅者则从主题中订阅消息。主题使得消息的订阅者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递。发布/订阅模式在消息的一对多广播时采用。
消息中间件适用于需要可靠的数据传送的分布式环境。
1.2 消息中间件的作用
- 解耦
- 冗余(存储消息直至处理成功)
- 扩展性
- 削峰(流量匹配)
- 可恢复性
- 顺序保证
- 缓冲
- 异步通信
1.3 RabbitMQ的起源
RabbitMQ是采用Erlang语言实现AMQP (Advanced Message Queuing Protocol ,高级消息 队列协议)的消息中间件,它最初起源于金融系统,用于在分布式系统中存储转发消息。
