文档中心 > 服务介绍
服务介绍

最近更新时间:2023-01-09

什么是RabbitMQ

消息队列RabbitMQ是一种跨进程、异步的通信机制,由消息系统来确保消息的可靠传递。完全兼容开源RabbitMQ,部署方便,提供丰富的工具和插件。具有易用性、扩展性、可靠性以及高可用性等特性。适用于异步处理、应用解耦、限流削峰(秒杀活动)、日志处理、消息通讯等场景。


产品特性

RabbitMQ具有如下特性:


高可用性:RabbitMQ集群版支持Quorum队列、镜像队列,可避免单节点故障,提升数据的安全性和服务的可用性。


灵活性:RabbitMQ提供了许多插件,可以支持从多方面进行扩展(可以编写自己的插件)。


高性能:消息队列RabbitMQ时效性达到微秒级,延迟低。


高可靠:RabbitMQ通过持久化、传输确认以及发布确定等机制来保证可靠性。


扩展性:消息队列RabbitMQ提供集群架构,可以根据实际业务情况动态扩展集群中的节点。


相关概念

在使用消息队列RabbitMQ前,您需要了解如下概念:


实例:虚拟化的消息队列服务器。您可以在一个实例中创建和管理队列。 


地域(Region):是指地理位置和网络时延维度划分的物理数据中心,同一个地域内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等服务。不同地域间默认内网不互通。


可用区(Availability Zone,AZ):是指在同一地域内,一个或多个物理数据中心的集合。同一地域内可用区与可用区之间内网互通,同一可用区内实例之间的网络延时更小;不同可用区之间电力和网络互相独立,物理隔离,帮助实现故障隔离。是否将资源放在同一可用区内,主要取决于您对容灾能力和网络时延的要求。


如果您的应用需要较高的容灾能力,建议您将资源部署在同一地域的不同可用区内。


如果您的应用要求实例之间的网络延时较低,则建议您将资源创建在同一可用区内。


产品规格

目前为您提供消息队列RabbitMQ集群版,支持的实例规格和硬盘规格如下。


实例规格

表-1 实例规格

规格编码

规格名称

节点数量

网络带宽能力(Mbps

IOPS

最大连接数

db.c1.medium

计算型24GB

3/5/7

800

2000

15000

db.c1.large

计算型48GB

3/5/7

1000

5000

15000

db.c1.xlarge

计算型816GB

3/5/7

1500

8000

15000

db.c1.2xlarge

计算型1632GB

3/5/7

3500

13000

15000

 

硬盘规格

消息队列RabbitMQ支持本地盘,容量为100GB~1000GB(步长为50GB)。同时支持SSD云硬盘、FC云盘等,需要提前确认CVK支持相应的存储类型,并在运营平台的[产品中心/产品管理]中做好配置,具体步骤可参见运营指南【产品管理】相关内容。


优势

独占式体验:消息队列RabbitMQ实现物理隔离,实例之间互不影响,提供多种规格供用户选择,即开即用,支持对实例和节点进行监控。


流量削峰:消息队列RabbitMQ支持流量削峰,可以节省服务器的资源成本,让服务端处理更加平稳。


异步通信:消息队列RabbitMQ提供异步处理机制,允许用户把消息放入队列,但并不立即处理。支持向队列中放入若干条消息,在需要的时候再去处理。


应用解耦:消息队列RabbitMQ支持独立的扩展或者修改两边的处理过程,只需要确保它们遵守同样的接口约束。


应用场景

秒杀活动

在秒杀场景下,网站瞬间访问流量激增,瞬间并发访问量可以突增10倍,甚至100倍以上,这种情况下可能导致整个系统服务宕机。所以可以引入RabbitMQ消息队列对流量进行削峰,瞬间将高流量变成平稳流量,从而有效缓解流量压力。同时,采用异步处理模式来提高系统并发量,从而提高整个服务的稳定性和可用性。


图-1 秒杀架构图

1.jpg

电商订单

在抢购场景下,用户抢购之后订单系统调用接口访问库存系统,但当库存系统无法访问时,就会导致订单减库存失败,从而导致订单失败。这种情况下可以引入RabbitMQ消息队列进行订单系统和库存系统的解耦,用户下单之后订单系统写入消息队列,不需要关注库存系统的状态。


图-2 电商订单结构图

1.jpg