RabbitMQ
RabbitMQ 是开源的分布式消息队列系统,用 erlang 语言开发。RabbitMQ 是 AMQP 的标准实现。
AMQP(Advanced Message Queuing Protocol)高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件而设计。
AMQP 的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全性。
消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
RabbitMQ 支持多种语言客户端,如:python、Ruby、.NET、Java、C、php 等,用于在分布式系统中存储转发消息,对路由、负载均衡和数据持久化都有很好的支持,是一款成熟的消息中间件。
RabbitMQ 中比较重要的几个概念:
- Producer:消息的生产者,就是生成消息将其投递(写入)到队列的程序。
- Consumer:消息的消费者,就是从队列中获取消息进行消息处理的程序。
- Broker:经纪人,就是消息队列服务器实体。
- Queue:队列,就是消息的载体,每个消息可以被投递到一个或多个队列中。
- Exchange:消息的交换机,它指定消息按什么规则,路由到哪个队列。
- Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
- Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
- Vhost