消息队列 MQ

提供基于消息的可靠异步通信机制,轻松构建松耦合、可扩展、高可用分布式系统

阿里云消息队列(Message Queue,简称 MQ)是由阿里巴巴自研的分布式消息队列服务,由阿里云平台完全托管,能够在微服务、分布式系统和无服务应用程序之间,提供基于消息的可靠异步通信机制,轻松构建松耦合、可扩展、高可用分布式系统。

MQ 服务于阿里巴巴集团超过 11 年,历经天猫双十一活动 9 年,具备低延迟、高并发、高可用、高可靠、可支撑万亿级数据洪峰和超强消息堆积能力,借助 MQ,您可以在任意规模的应用组件之间自由地传递数据。

2017 年 9 月,消息队列内核引擎 RocketMQ 成为 Apache 的顶级项目,秉持开放、共享、共建的原则,拥抱开源生态,无技术绑定。基于 OpenMessaging 下一代消息引擎架构,面向 4 大领域,支撑混合云多语言架构,已在 linux foundation 完成落地,有望成为分布式消息领域的国际标准。

优点

高性能
支持千万级的 QPS(每秒钟消息收发条数),万亿级的消息流转,无并发限制,无性能上限
数据高可靠
同步双写、跨机房超三副本数据冗余以及数据副本的快速切换技术,保证数据可靠性高达 99.99999999%
可扩展
支持万级 Topic,队列数可弹性扩展;集群规模可自动扩缩,对用户完全透明
权限控制
以消息主题(Topic)、订阅组(ConsumerId)的粒度对用户访问权限进行控制,对每一条消息(Message)的收、发都进行严格的访问控制,确保消息的安全性

产品详情

  • 高性能 & 低延迟

    海量堆积

    在海量消息堆积的情况下,始终保持高性能,不影响集群的正常服务,在削峰填谷(蓄洪)的场景下,显得尤其重要


    低延迟

    经过历年双十一反复打磨,攻克了在超高并发情况下因系统负载过高导致的慢请求响应时间抖动问题,在 2017 年双十一万亿消息流转中 99.6% 的消息写入延迟在 1ms 以内,99.996% 的消息写入延迟在 10ms 以内


    实时推送

    消息到达服务器立刻投递,保证消息实时性

  • 高可用 & 高可靠 & 可扩展

    服务高可用

    MQ 作为阿里云正式商用的产品,已在全球多个地域提供了高可用消息云服务,机房硬件设施按照阿里巴巴自建 IDC 的高标准实施。每个 Region 均采用多机房部署,即便整个机房都不可用,仍可以为应用提供消息的发布服务


    同城多活

    在中国华东 1、中国华东 2、中国华南 1 等多个金融专区,提供同城多活的部署方案,为金融核心交易系统保驾护航

  • 安全访问控制

    主子账号

    全面支持阿里云 RAM 主子账号、黑白名单、STS 等功能


    授权

    支持跨账号授权与主子账号授权


    安全

    支持 TLS 传输加密协议、阿里云 VPC 访问等

  • 主题模型(Topic)

    Pub/Sub 模式

    MQ 支持 Pub/Sub 模式,Producer 将消息发往指定 Topic,可被一个或者多个 Consumer 进行订阅


    消费模型

    支持集群消费与广播消费,并约定使用相同 Consumer ID 的订阅者属于同一个集群;集群消费模式下,每条消息只需要被集群内的任意一个订阅者处理;广播消费模式下,每条消息将推送给集群内所有订阅者,保证消息至少被集群内的每个订阅者消费一次

  • 丰富的消息类型

    普通消息

    普通的消息类型,解决系统间异步解耦,削峰填谷,日志服务,大规模机器的Cache同步,实时计算分析等


    顺序消息

    按照消息的发布顺序进行顺序消费(FIFO),支持全局顺序与分区顺序


    事务消息

    MQ 提供类似 X/Open XA 的分布事务功能,通过 MQ 事务消息能达到分布式事务的最终一致


    定时消息

    将消息发送到 MQ 服务端,在消息发送时间(当前时间)之后的指定时间点进行投递,比如指定时间在 2016/01/01 15:00:00 进行消息投递


    延时消息

    将消息发送到 MQ 服务端,在消息发送时间(当前时间)之后的指定延迟时间点进行投递,比如指定消息发送时间的 30 分钟之后进行投递

  • 体系化运维配套

    消息查询

    用户可以通过 Topic/Message ID/Message Key 查询 MQ 服务器上的消息


    全链路消息轨迹

    完整记录消息在消息的生产方、消息队列服务器、消息的消费方之间流动的全过程数据,并将这些数据汇聚分析,构成可视化的全链路消息轨迹


    消息回溯

    通过指定时间的方式,对已经消费过的消息进行回放,是帮助用户进行故障处理的一柄利器


    资源报表

    通过可以查看每个消息主题(Topic)、订阅组(ConsumerId)的历史数据与实时数据,帮助用户进行数据分析


    监控告警

    每个订阅组都可以根据消息的消费延时间、消息堆积量等因素进行监控告警设置,帮助用户及时发现问题


    Open API(RESTful)

    MQ 提供给用户的一整套完备的管控类 Open API,用于实现一系列资源管理和运维功能,采用 HTTP RESTful 标准,接入方便

领军客户实战场景

  • 解耦
  • 削峰填谷(蓄洪)
  • 分布式事务
  • 实时计算
  • 大规模缓存同步
  • IM
解耦

解耦

系统间的松耦合,有助于提高可扩展性和可靠性,是适用于现代应用程序的最佳设计方案。 借助 MQ,您可以在任何数量的应用服务组件(系统)之间发送、存储和接收消息,保证不丢消息,从而使得云应用服务组件(系统)的工作得到简化,达到更高的成本效益。

削峰填谷(蓄洪)

削峰填谷(蓄洪)

诸如天猫双 11 凌点交易高峰、秒杀、春晚抢红包等大型活动时,当外部请求超过系统处理能力负荷时,将导致请求大量的失败;若系统没有做相应保护,可能由于历史累计的超时请求过多,因无法自动恢复而导致系统崩溃,对外呈现的服务能力为 0,极大影响用户的体验。

分布式事务

分布式事务

在传统的事务处理中,多个系统或者应用组件之间的业务处理会耦合到一个大事务中,响应时间长,业务链路长从而影响系统可用性。引入消息队列(MQ)的分布式事务消息后,可以将需要同步处理的核心链路业务与可异步化处理的分支链路业务进行拆分,从而将一个大事务拆分成一个小事务,进而减少系统间的交互。
通过 MQ 的分布式事务消息,既能保证分布式系统之间数据的最终一致,又能将业务系统(购物车、积分、其他)之间解耦,从而达到最佳的架构设计。

实时计算

实时计算

数据在"流动"中产生价值,传统数据分析大多是基于批量计算模型,而无法做到实时的数据分析,利用阿里云消息队列(MQ)与流式计算引擎 (Spark/Storm/EMR/ARMS/BeamRunner等) 相结合,可以很方便的实现将业务数据进行实时分析。

大规模缓存同步

大规模缓存同步

在大型活动中的分会场或者大规模的 App 客户端中,为降低请求的 RT 时间提高客户的体验,都会使用大规模缓存设计。如 “双11” 大促,各个分会场、如手淘 App、天猫 App 都会有琳琅满目的商品,每件商品的价格都会根据活动状态实时发生变化,大量并发访问商品数据库会场页面响应时间长,集中式缓存带宽成瓶颈,无法满足对商品价格的访问需求。针对分会场的多缓存设计,通过消息队列(MQ),可以实现多缓存间的同步,从而满足客户对商品价格的访问需求。

IM

IM

在阿里巴巴,无论是交易中使用的旺旺或是企业移动办公平台钉钉,都是通过消息队列(MQ)中的消息完成每一次的沟通以及社交活动。无论是单聊、群聊、钉钉通知、抢红包,每次交互都会产生大量的消息。