产品介绍

产品简介

消息队列RabbitMQ是一款分布式的消息队列服务,兼容RabbitMQ原生客户端、AMQP协议,支持集群及队列高可用,通过异步通信、服务解耦、削峰填谷等能力特性,帮助应用开发者构建松耦合、分布式、高可用的业务系统。

产品功能

  • 可视化实例管理

通过web控制台可对消息队列RabbitMQ实例进行开通、管理、客户端登录等。

  • 多协议支持

支持AMQP、MQTT、STOMP、WebSockets 等多种协议。

  • 丰富的监控指标

支持20多种监控指标,如内存使用率、CPU使用率、RabbitMQ服务状态、通道数、连接数、消费者数、消息数等。

  • 灵活的路由

支持direct、topic、headers、fanout四种路由方式,支持交换机组合和自定义。

  • 多种高级队列功能

支持优先级队列、死信队列、延时队列,满足用户多个场景下的需求。

产品优势

  • 快速部署

可在线快速部署实例,缩短项目周期,帮助业务快速上线。

  • 高可用

提供三节点、五节点集群,集成HAProxy,通过Keepalived支持高可用负载均衡模式,满足服务高可用的需求。

  • 安全可靠

实例运行于私有VPC,通过安全组控制访问,对接IAM访问控制体系,支持主子账号。

  • 兼容性强

支持AMQP 0-9-1版本标准协议,兼容RabbitMQ多语言客户端和Queue、Exchange、Vhost等组件,迁移上云0成本。

应用场景

  • 系统解耦

大型应用,往往由多系统多模块组成,采用紧耦合设计,系统模块之间会相互影响,一个服务有问题可能导致整个系统有问题,系统稳定性较差,紧耦合系统设计复杂度也较高,系统处理效率较低。

使用消息服务实现系统解耦,通过引入消息队列,各个业务系统之间进行解耦,减少各个系统之间相互依赖,能有效提高系统稳定性以及处理效率,松耦合架构设计是当前流行的技术架构

  • 削峰填谷

业务系统的数据处理和访问量,在访问量少时,传统的处理方式及服务直接处理方式完全可及时响应用户(/系统)请求,而用户请求压力高到一定程度时,系统资源会严重不足,各服务争抢资源,最后有可能各服务资源都不够用而使系统瘫痪。

用户请求的数据可以缓存在消息队列中,服务从消息队列中获取数据并进行处理,系统在请求高峰期仍保持满负荷的处理能力但系统不会瘫痪,达到通过流量控制降低系统峰值压力的目的

产品术语

序号 关键词 定义
1 实例 某个消息队列RabbitMQ的资源集合,含节点资源、RabbitMQ部署版本、数据存储空间、内网IP/端口等。
2 AMQP AMQP(Advanced Message Queue Protocol)是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,不受客户端/中间件不同产品,不同的开发语言等条件的限制。
3 消息(Message) 消息队列服务对外服务的基本实体单元,消息由Header(标签)和Body(消息体)组成。Header是消息生产者添加的各种属性的集合,包括消息是否被持久化,由哪个队列接受,优先级是多少等等。Body是消息体,是真正需要被传输的数据。
4 队列(Queue) 消息的容器,用于存储生产者的消息,生产者把消息发送到队列,消费者从队列中获取并消费消息,每个消息会被投放到一个或多个队列里。
5 生产者(Producer) 消息的创建方,即消息数据的来源。
6 消费者(Consumer) 消息的消费方,即消息数据的去处。
7 信道(Channel) 消息推送使用的通道。
8 Exchange(消息交换机) 用于接收、分配消息,本质上为消息路由,Exchange 根据消息的属性或内容路由消息。
9 优先级队列 RabbitMQ支持按照消息优先级的高低来消费消息的队列。生产者在发送消息时,需要设置该消息的优先级,RabbitMQ按照队列中优先级高低的顺序来执行消费。
10 死信队列 消息在消费失败、TTL过期、队列长度超限之后会被重新发送到一个特殊的Exchange,即dead letter exchange(DLX),进入到DLX的消息不会被重新发送到原来的队列重新消费。
11 延时队列 采用延时队列插件来实现延时队列功能,支持消息延时/定时发送。