使命必达--阿里云商用消息服务MNS初探


在2015杭州云栖大会上,阿里云飞天事业部资深总监李津发布了一款海量消息,使命必达的消息服务产品(http://www.aliyun.com/product/mns)。该产品能够提供高效,可靠,安全,便捷,弹性扩展的消息服务;能够帮助我们轻松的构建松耦合,高并发的分布式系统;能够方便我们做跨域数据安全传输。目前,消息服务也是阿里云唯一商用消息产品,其服务稳定性和可靠性都有SLA保障。下面让我一起来详细了解一下这款产品。

 

架构优势带来海量,高可靠,高可用特性

在了解消息服务前,不得不提的是阿里云飞天系统。飞天是阿里云的核心平台,提供了分布式存储和分布式计算服务。阿里云大部分产品都是基于核心这个平台,消息服务也不例外。下图是消息服务基于飞天的架构图:

消息服务在研发之初就是以海量,高可靠性,高可用性为目标来设计的。这是消息服务和其他通过软件云化,以主从同步实现数据可靠性的消息中间件最根本的区别。

消息服务无论是数据节点还是元数据节点,都采用了完全分布式的设计,具有非常好的线性扩展能力。用户数据被打散存储到整个集群,突破了单物理机的存储上限,进而实现了海量的数据存储能力。用户队列个数和单队列堆积消息数都无上限限制;

消息服务每条消息在返回给用户写成功之时就确保数据已被复制3份写到不同物理机上,并且后台数据复制机制能够保证任何一台物理机故障时其上的数据能够快速的做迁移,时刻保证用户数据3份copy可用,进而实现了非常高的数据可靠性(99.99999999%);

同样的,消息服务的每个用户队列都同时有2个以上物理机提供服务,并且发生物理机故障时,队列服务单元会做快速自动迁移,这就保证了任何时刻出现机器故障,都不会影响用户对于队列的使用,进而保证了消息服务的高可用性。

 

六大特色功能

除了上述3大基本特点外,消息服务还提供了一系列特色功能,

特色功能1:保证消息至少被消费一次。通常的消息队列,在消息被取出后就认为用户程序已经消费成功。在阿里云的消息服务里,只有消息在被用户主动删除后,才会被认定为消息被用户程序消费成功。否则,消息服务会保证消息在用户设定的时间后继续可以消费,进而保证消息“使命必达”。 这个机制在分布式系统中单点故障成为常态的情况下非常有用,用户不用担心自己的程序崩溃而导致丢失正在处理中的消息,也无需在程序重新启动后做任何消费状态设置。

特色功能2:所有API包括管理API,都采用标准HTTP Restful 接口,支持公网访问,无平台依赖。用户可以轻松的做跨域的数据传输,而不需要在防火墙开特殊端口;也不需要等待官方某种特定语言的SDK,可以很方便的用各种语言以自己想要的方式实现SDK,做到自主可控。

特色功能3:优先级消息。在现实生活中,我们在银行,火车票售票排队窗口,会看到对于XXX优先等字样,其实在程序世界也是一样。我们会有特殊紧急的消息/任务需要优先处理。消息服务为此专门提供了优先级消息功能,能够让优先级高的消息“插队”,优先被用户程序处理。

特色功能4:延迟消息。我们也会碰到有些任务需要在一定时间后被执行的场景。例如:用户下完订单后,需要在15分钟后检查用户订单是否完成付款,这时我们只需要消息服务的队列里发送一条延迟15分钟的消息即可。处理程序15分钟后从队里读取消息,并检查订单状态是否为支付成功,如果没有则取消订单,并更新商品库存。

特色功能5: 批量消息功能。有时候,我们需要一次性往队列里发送或获取多条消息,以提高处理速度。这时消息服务的批量消息功能就可以帮助我们实现这一目的。

特色功能6: 通知消息功能。该功能是消息服务即将公测的功能,已经应用于阿里云的对象存储服务和媒体转码等云服务。目前已经支持http回调方式,后续还会支持移动推送,邮件,短息通知。可以轻松帮助我们实现真正的异步通知场景。

 

多种应用场景,零运维成本

消息服务提供的上述功能,能够帮助用户轻松实现系统解耦,削峰填谷,数据交换,通知回调,定时任务,优先级任务等场景,并且不需要自己购买服务器,搭建开源消息中间件软件以及后续繁琐的运维扩容工作。消息服务提供了一键开通,按需使用,弹性扩容,按量计费的全方位贴心服务。让企业可以专注于自己的系统组件间的业务逻辑,而不需要为底层消息中间件稳定性担忧,真正实现了0运维成本。

 

消息产品云服务化趋势,阿里云消息服务使命必达

在云计算越来越普及,SOA架构大行其道的今天,消息中间件已经成为了必不可少的组件,我们预测传统的自己搭建服务器做为消息中间件的方式也会慢慢退出历史舞台。国外云计算起步较早的国家这个趋势越加明显,涌现出了不少商用消息中间件云服务。国内阿里云凭借着自己坚实的核心技术实力和服务电商大数据的经验已经取得了国内云计算的领先地位。消息服务也正是经过了阿里云产品内部近4年的锤炼而成的商用产品,因此在成熟度和稳定性要远超其他国内同类产品,并承诺使命必达,不丢消息。

时间: 2024-08-03 11:16:08

使命必达--阿里云商用消息服务MNS初探的相关文章

阿里移动|《使命必达——钉钉企业级消息服务的机遇与挑战》

摘要:对于移动技术而言,2017年是继往开来之年.一方面是移动技术领域进入深水区,另一方面移动技术边界和内涵被不断重塑.作为专为中国企业打造的免费沟通和协同的多端平台,钉钉在发展和功能的不断完善过程中沉淀了很多实战经验,2017年杭州云栖大会上,钉钉技术专家格夫结合钉钉发展历程为大家分享了企业沟通场景的消息服务挑战以及系统推送链路的优化经验. 演讲嘉宾简介:格夫,钉钉技术专家.入职阿里巴巴之前在百度云服务平台部门,2014年加入钉钉创业团队,参与钉钉消息系统设计开发,主导了IM系统性能和稳定性提

使命必达: 深入剖析WCF的可靠会话[概念篇]

在<实例篇>中,我通过可靠会话成功地进行了美女图片的传输,相信大家在保了眼福之余,会对WCF的可靠会话的功用具有一个深刻的认识.实际上,这涉及到WS中一个重要的概念--可靠消息传输(RM:Reliable Messaging).如果想对可靠会话有一个深入的认识,对可靠消息传输的了解是必须的. 一.可靠消息传输(Reliable Messaging) 我们可以将一个通过WCF构建的分布式应用划分为两个部分,即客户端应用和服务端应用,它们之间的交互方式即采用某种MEP的消息交换.在这里,我们需要通

如何接入阿里云短信服务 (完整指南)

目录 一.注册并实名认证 二.开通短信服务 三.获取AccessKey 四.设置短信内容 五.配置短信接口 六.发送短信 七.常见问题FAQ 一.注册并实名认证 使用阿里云短信服务,用户需要先在阿里云注册,并完成个人/企业实名认证. 注意:要发送营销短信的用户,必须完成企业实名认证 1.1 注册阿里云:点此注册  1.2 实名认证:点此认证  1.3 绑定企业支付宝: 点击绑定企业支付宝   二.开通短信服务 2.1.开通短信服务:点击开通短信服务 2.2 子账号页面:点击查看子账号页面 2.3

工程师福音 阿里云MQ消息轨迹功能全球首发

众所周知消息队列(Message Queue,简称MQ)是阿里云商用的专业消息中间件,是企业级互联网架构的核心产品,是阿里双11使用的消息中间件. 2016年6月23日阿里云MQ推出了业界领先的消息轨迹功能.消息轨迹指的是一条消息从生产方发出到消费方消费处理,整个过程中的各个相关节点的时间地点等数据汇聚而成的完整链路信息.那么消息轨迹的使用场景是那些呢?解决什么问题呢? 从阿里云MQ服务中,一条消息的完整链路包含生产方,服务方,消费方三个角色,每个角色处理消息的过程中都会在轨迹链路中增加相关的信

阿里云资源编排服务Python SDK使用入门

阿里云资源编排服务(ROS)为我们维护云计算资源提供了一个低成本.可靠.标准化的方案.基于ROS提供的能力,我们只要编写和维护资源模板文件,就可以达到维护云计算资源的目的,而不再需要花费很多的时间通过控制台来人肉配置.ROS为一些场景下的资源维护提供了不同的思路和可能性,比如很多需要大量临时计算资源的场景,使用ROS将使整个资源申请.应用构建.资源释放过程非常简单. ROS同时提供RESTful API和SDK,这使得我们可以很容易的把ROS对于资源的操作能力集成到我们的应用中.下面我们通过示例

使用阿里云开放搜索服务快速搭建资源搜索网站

大家好,我又来了,答应云栖论坛一周一篇文章, 由于工作太忙已中断1个多月实在抱歉,这一次写点轻松有趣的东西-快速的做个资源搜索站 依稀记得十来年前,带宽还只有2M的时候,受各个论坛启发,做了可以搜索嘿嘿嘿资源的搜索站 一晃这么多年过去,嘿嘿嘿的东西依然喜欢,但世间却变化万千 资源种类已不仅仅是X片,高清电影.纪录片.无损音乐.美剧.大型软件等等,似乎更加吸引 资源呈现方式也百花齐放,从最早的BT文件.电驴地址,到现在的磁链地址.各种云盘等等 而传统的P2P下载方式也变得格格不入,因为硬盘容量已经

Laravel框架中实现使用阿里云ACE缓存服务

这篇文章主要介绍了Laravel框架中实现使用阿里云ACE缓存服务,本文扩展了一个ACE缓存驱动,以便使用阿里云ACE缓存服务,需要的朋友可以参考下 之前我写了一篇在 Laravel 4 框架中使用阿里云 OCS 缓存的文章,介绍了如何通过扩展 Laravel 4 来支持需要 SASL 认证的阿里云 OCS 缓存服务.有网友问我,ACE 的缓存怎么在 Laravel 4 中使用.我本来觉得应该可以完全用相同的办法,后来自己尝试的时候才发现,ACE 的缓存差别非常大.所以再写一篇,介绍一下如何在

阿里云资源编排服务 Java SDK使用入门

阿里云资源编排服务 Java SDK使用入门 安装依赖 添加Maven库 <repositories> <repository> <id>sonatype-nexus-staging</id> <name>Sonatype Nexus Staging</name> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> &

通过命令行工具使用阿里云资源编排服务

资源编排ROS 是一种简单易用的云计算资源管理和自动化运维服务.用户通过模板描述多个云计算资源的依赖关系.配置等,并自动完成所有资源的创建和配置,以达到自动化部署.运维等目的. 了解更多 通过命令行工具使用阿里云资源编排服务 资源编排服务(ROS)支持用户通过模板文件定义所需的云资源,描述资源间的依赖关系和配置详情,并自动完成资源的创建和配置,以达到自动化部署.运维等目的. 作为一种自动化运维工具,阿里云ROS屏蔽了底层资源操作的复杂性,使得对基础设施资源的管理通过简单的代码就可以实现. 命令行