RabbitMQ是一套开源(MPL)的消息代理软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。具有高可靠、灵活路由的特点,支持多客户端、集群。可集成插件和工具,提供权限管理及监控功能。
MQ消息队列
全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于系统之间的异步通信。
用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。
AMQP高级消息队列协议
一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。
RabbitMQ的工作原理
Producer(生产者)和Consumer(消费者)会与Broker(RabbitMQ实例)建立一个Connection(连接)。
这个连接本质上是TCP长连接。TCP连接与数据库连接一样,频繁的创建和销毁都会造成很大的资源消耗,因此,RabbitM