RabbitMQ 官方版全称 Rabbit Message Queue,是一款用 Erlang 语言编写的应用程序通信方法插件。它让不同的程序通过读写队列中的消息来交换数据,不需要建立专用连接把它们绑在一起。所谓消息传递,就是程序之间靠发送消息来通信,而不是直接互相调用——后者通常出现在远程过程调用这类技术里。排队则指应用程序队列完成通信,这样一来,接收方和发送方不必同时运行。比较成熟的 MQ 产品还有 IBM WEBSPHERE MQ 等。

1、可靠性
RabbitMQ 依靠队列、交换机与消息三者的持久化设置,加上 ACK 确认应答,来保障消息传递的可靠程度。
2、支持多种语言与协议
RabbitMQ 能兼容市面上绝大多数编程语言,并且对 AMQP、STOMP、MQTT 这些通信协议也都提供了支持。
3、管理界面
RabbitMQ 自带一个图形化管理页面,让用户能直接查看它的运行状态和各项情况。
4、可灵活的扩展
把若干RabbitMQ节点组织起来就能构成集群,队列可镜像到集群内不同机器上,这样即使某些节点发生故障,队列依然能正常提供服务。
1、支持producer
具备 producer 支持能力,可用于消息的生产与发送。
2、支持consumer
用于接收和处理消息的消费者端组件。
3、支持virtual host
RabbitMQ 里的虚拟主机相当于权限划分的单位,用户能做的权限配置都围绕这一层展开,比如允许访问哪些队列、能处理哪些请求。
4、broker
RabbitMQ服务端承担的角色是消息转发者,它依据哪些规则来转发消息呢?这涉及两个核心概念:exchange(交换机)直接与producer交互,作用类似路由器,负责转发消息,producer选择哪个exchange由routing key(路由键)决定,每条消息都带这个键,可以自行设置,本质上是一个字符串;queue(消息队列)用来存储消息,接收exchange路由过来的内容,队列中的消息支持持久化,而queue接收哪个exchange的消息,则取决于binding key(绑定键),绑定键负责把队列和exchange关联起来。
(您的评论需要经过审核才能显示)
0条评论