产品优势
-
轻量队列
提供更简单、轻量的消息队列,聚焦消息领域核心能力构建。提供轻量 Queue/Topic 资源模型,简单易用,无复杂模型概念;提供轻量 HTTP RESTful 接口,原生支持 HTTP 协议对平台无依赖;多种语言SDK:C++、Java、C#、Python、PHP、golang(第三方)、Node.js(第三方)。
-
Serverless
轻量消息队列(原 MNS)是标准的 Serverless 化产品,可处理近乎无限的并发请求,无需感知或预先配置任何集群信息,拆箱即用;同时采用后付费计费方式, 无需预留任何实例资源,只为实际使用量付费。
-
安全稳定
稳定性方面数据三重备份,可靠性达 99.99999999%; 服务可用性高达 99.95%; 可以做到 Always Writable;同时提供多层次安全防护和防 DDoS 攻击;做到多用户隔离机制,每个用户独立命名空间;全面支持 RAM:主子账号,临时 AK;支持 HTTPS,VPC 访问。
-
高级特性支持
可自定义消息延迟,定时消息,消息体大小,消息生命周期,标签过滤,重试即死信等高级特性。提供健全的消息产品方案帮助开发者在应用的分布式组件之间自由地传递数据、通知消息,从而构建松耦合系统。
产品功能
队列模型(Queue)
丰富的队列属性配置
我们提供了丰富的队列属性配置选项,您可以进行队列属性的个性化配置来满足不同的应用场景,支持普通队列、延迟队列等多种队列模式。
支持并发访问
支持多个生产者和消费者并发访问同一个队列,无需特殊设置即可自由调整并发度,并能确保某条消息在取出之后的特定时间段内,无法被其他消费者获得。
消息投递保障
在消息有效期内,确保消息至少能被成功消费一次。用户间资源隔离,确保您队列中的消息不会被非法获取。
主题模型(Topic)
支持通知消息
服务端主动将消息发送给用户指定的回调地址(Endpoint),消除用户端程序不必要的轮询和资源消耗。
支持一对多广播消息
一条通知消息可以同时被多个订阅者订阅和消费。
支持多种订阅方式
支持 http / https、邮件、SMS、移动终端等多种订阅方式。
消息投递保障
在消息有效期内,保证发布到 Topic 中的消息会按照指定的策略和格式推送给用户程序。
支持消息过滤
将一个主题的消息通过不同的标签推送到不同的订阅渠道。
应用场景
交易系统解耦
作为淘宝/天猫主站核心的交易系统,每笔交易订单数据的产生会引起几百个下游业务系统的关注,包括物流、购物车、积分、阿里妈妈、流计算分析等等,整体业务系统庞大而且复杂,为了保证主站业务的连续性,必须采用分布式的架构设计,各个系统间进行解耦。
能够提供
-
高可用松耦合架构设计
通过上、下游业务系统的松耦合设计,即便下游子系统(如物流、积分等)出现不可用甚至宕机,都不会影响到核心交易系统的正常运转。
-
灵活适应业务的快速增长
应业务要求新增业务系统时,不会影响基础的技术架构改动,也不会影响其他系统间的正常运转。
大流量场景削峰填谷
满足业务在特殊时期,比如秒杀、抢红包、企业开门红等大型活动时皆会带来较高的流量脉冲,防止系统超负荷甚至崩溃,或请求大量失败影响用户体验。
能够提供
-
超高流量脉冲处理能力
超高性能的消息处理能力,可以承接流量脉冲而不被击垮,在确保系统可用性同时,因快速有效的请求响应而提升用户的体验。
-
海量消息堆积能力
确保下游业务在安全水位内平滑稳定的运行,避免超高流量的冲击。
-
合理的成本控制
通过削弱填谷可控制下游业务系统的集群规模,从而降低投入成本。
关闭未支付订单
订单未支付后的业务逻辑处理,并触发定时任务;可以通过队列设计定时消息:创建订单库存减1的同时,发送付款检查任务的定时消息到消息服务Queue; 定时消息在30分钟后可见,后端服务消费到付款检查任务的消息;也可以通过MNS完成实时通知:后端服务进行付款检查,如果订单还未支付,对订单进行回滚,库存加1。
能够提供
-
创建定时消息
比如通过创建定时消息以判断电商交易中超时未支付的订单是否已付款或者需要关闭订单(满足消息生产和消费的时间差的业务要求)。
-
完成定时通知
比如上场景中对超时未支付订单对用户发送提醒消息(满足通过消息触发定时任务的业务场景设计)。
用户信息注册
表单注册等系统同步转异步,实现异步通知;用户注册成功后,需要发送注册成功邮件、新用户积分、优惠券等,加入MNS,可以提升主流程用户注册流程的响应速度,而发送通知等非主流程或非重要任务可以异步集中处理,同时还可以将任务聚合然后批量处理。
能够提供
-
减少请求、提升效率和系统并行能力,提高系统吞吐量
基于通知功能,可以在后端服务处理完成任务时,回调通知用户。进而减少用户、Web 前端和后端服务之间大量不必要的轮询请求。
-
设计运营通知
消息推送通知是运营方法中使用频率较高的一种。它可以在某个时间节点提醒用户进行某项操作,比如上新活动推送、有趣新闻内容提醒、或派送优惠券通知等,增强用户黏性。
在线抽奖设计
在线抽奖系统架构设计:访问抽奖系统前端集群,抽奖系统后端管理集群随机生成奖品信息,注入奖品队列;随机生成奖品信息:通过两个队列进行中奖信息同步,前端通过奖品队列读取奖品信息,对用户的抽奖请求进行判定,命中之后,发送中奖信息到中奖信息队列;抽奖请求判定及用户通知:后端管理集群收取中奖信息队列中奖信息,发送通知消息到奖品通知主题,奖品通知主题推送奖品通知短信、邮件到用户,通知实时统计系统 http 回调进行中奖统计。
能够提供
-
前端抽奖系统和后端奖品系统松耦合
通过奖品队列,完成用户在线抽奖和奖品随机生成。
-
完成中奖情况的判定、中奖消息的同步和用户的通知
通过队列、主题、消息的结合,实现了用户事件的实时推送,保证中奖信息的时效性。
任务系统设计
设计任务系统,完成HTTP回调。通过队列异步执行任务计算:用户提交任务执行消息到任务队列中;任务执行集群消费任务队列中的任务消息,异步执行计算任务;通过MNS完成实时通知:计算任务执行结束,发送送通知消息到主题,主题异步调用任务管理服务器上的http回调,并且发送邮件和短信通知用户。
能够提供
-
避免解决并发请求带来的数据洪峰,压缩会场页面响应时间
比如双11大促,各个分会场几百上千个商品需要实时感知价格变化,大量并发访问数据库,数据库的访问压力极大。
-
避免因为带宽瓶颈限制商品变更的访问流量,实时通知商品数据的变化
跨私网数据交换
相互隔离的内网间的数据通过公网进行相互隔离的内网间的数据通过公网进行数据交换。
能够提供
-
数据同步和交换
无需打通企业 A 和 B 的内网,也无需暴露企业 A 内网服务,消息服务作为公共消息通道实现企业 A 向企业 B 数据同步和交换。
-
灵活设置访问策略
消息服务已经支持 RAM 访问控制和 STS 临时授权方式,可以灵活设置公网队列的访问策略。
视频系统架构
视频上传和视频处理服务解耦:视频上传至oss,oss发送视频上传完成事件消息到消息任务队列;视频处理通过MNS完成状态更新:视频处理服务MTS读取任务队列中事件消息,根据时间消息拉取文件,进行视频转码,重新上传转码结果,发送通知到通知主题;视频上架:视频网站更新数据,上架视频;CDN对新转码的视频进行加速,加快用户观看体验。
能够提供
-
多任务间松耦合设计,提高业务并发处理能力
-
多任务间顺序进行,保证业务流程流畅