来认识一下这款消息中间件——RabbitMQ

Posted 研发云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来认识一下这款消息中间件——RabbitMQ相关的知识,希望对你有一定的参考价值。

认识 RabbitMQ 之前,让我们先来聊聊 MQ。MQ(消息队列)全称为 Message Queue,是一种应用程序对应用程序的通信方法,也是一种应用间的异步协作机制。其原理是由应用程序通过读写队列内的消息(针对应用程序的数据)来实现通信。消息可以很简单,比如只包含文本字符串;也可以很复杂,比如包含了嵌入对象。


MQ主要用于业务解耦,它能有效提升业务系统的响应能力,起到削峰填谷的作用,增强其异步处理能力。

来认识一下这款消息中间件——RabbitMQ

在整个消息传递过程中

程序间不是通过直接调用彼此来通信

消息发布者只管把消息发布到 MQ 中

消息使用者只管从 MQ 中获取消息

因此发布者和使用者

都不必知道对方的存在

队列的使用免去了接收和发送的应用程序

需要被同时执行的限制

当然,作为异步协作机制的 MQ

依然需要中间件来帮自己实现消息传递

而当前最主流的消息中间件之一

就是 RabbitMQ

来认识一下这款消息中间件——RabbitMQ

RabbitMQ 是一个在 AMQP(Advanced Message Queuing Protocol,即高级消息队列协议)基础上完成的开源消息中间件。它遵循 Mozilla Public License 开源协议,主要用于在分布式系统中存储转发消息,由因高性能、高可用以及高扩展而出名的 Erlang 语言写成。

来认识一下这款消息中间件——RabbitMQ

Queue(队列)是 RabbitMQ 的内部对象

用于存储消息

RabbitMQ 中的消息都只能存储在 Queue 中

生产者生产消息并最终投递到 Queue 中

消费者可以从 Queue 中获取消息并消费

多个消费者可以订阅同一个 Queue

这时 Queue 中的消息

会被平均分摊给多个消费者进行处理

而不是每个消费者都收到所有的消息并处理

来认识一下这款消息中间件——RabbitMQ

RabbitMQ 的主要特点如下:

可靠性(Reliability):RabbitMQ 提供了多种多样的特性,让用户在可靠性和性能之间做出权衡,包括持久化、发送应答、发布确认以及高可用性。


高可用(Highly Available Queues):支持跨机器集群,支持队列安全镜像备份,消息的生产者与消费者不论哪一方出现问题,均不会影响消息的正常发出与接收。


灵活的路由(Flexible Routing):所有的消息都会通过路由器转发到各个消息队列中,RabbitMQ 内建了几个常用的路由器,并且可以通过路由器的组合以及自定义路由器插件来完成复杂的路由功能。RabbitMQ能将多个 Exchange 绑定在一起,也能依靠插件机制来建立自己的 Exchange 组件。


多语言客户端(Many Clients):RabbitMQ 对主流开发语言(如:Python、Ruby、.NET、Java、C、php、ActionScript 等)都有客户端实现。


多种协议(Multi-protocol):RabbitMQ 支持多种消息队列协议,比如 STOMP、MQTT 等等。


消息集群(Clustering):多个 RabbitMQ 服务器可以组成一个集群,形成一个逻辑 Broker 。


管理界面(Management UI):RabbitMQ 提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker 的许多方面。


插件机制(Plugin System):支持各种丰富的插件扩展,同时也支持自定义插件,其中最常用的插件是 Web 管理工具 RabbitMQ_Management


跟踪机制(Tracing):RabbitMQ 提供了消息跟踪机制,如果消息异常,用户可以找出发生了什么。


扩展性(Extensibility):RabbitMQ 支持负载均衡,动态增减服务器简单方便。


权限管理(Authority management):RabbitMQ  有灵活的用户角色权限管理,Virtual Host 是权限控制的最小粒度。

来认识一下这款消息中间件——RabbitMQ

长|按|二|维|码|关|注

获取更多产品介绍及业界动态

来认识一下这款消息中间件——RabbitMQ研发云微信公众号
移动Labs公众号

 研·发·云


以上是关于来认识一下这款消息中间件——RabbitMQ的主要内容,如果未能解决你的问题,请参考以下文章

认识一下 RabbitMQ

认识并安装RabbitMQ(以Windows系统为例)

RabbitMQ消息队列

RabbitMQ详解------简介与安装(Docker)

RabbitMQ说明

分布式消息中间件之RabbitMQ学习笔记[一]