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

本文涉及的产品
对象存储 OSS,20GB 3个月
云备份 Cloud Backup,100GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
简介:

在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年的锤炼而成的商用产品,因此在成熟度和稳定性要远超其他国内同类产品,并承诺使命必达,不丢消息。
相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
7月前
|
消息中间件 缓存 物联网
MQTT常见问题之MQTT发送消息到阿里云服务器被拒如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
2月前
|
消息中间件 存储 Serverless
【实践】快速学会使用阿里云消息队列RabbitMQ版
云消息队列 RabbitMQ 版是一款基于高可用分布式存储架构实现的 AMQP 0-9-1协议的消息产品。云消息队列 RabbitMQ 版兼容开源 RabbitMQ 客户端,解决开源各种稳定性痛点(例如消息堆积、脑裂等问题),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。
106 2
|
6月前
|
消息中间件 安全 API
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(1)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
304 1
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(1)
|
6月前
|
消息中间件 安全 Apache
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(4)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
186 1
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(4)
|
6月前
|
传感器 数据采集 监控
基于阿里云MQTT服务,设计一个STM32的智能光伏控制系统
这篇文章详细介绍了利用STM32F103C8T6单片机实现光伏发电系统的关键技术。全文分为四章:第一章阐述了光伏发电的背景、意义及应用场景,强调其在绿色能源领域的重要性。第二章介绍了如何通过STM32F103C8T6及光敏电阻和伺服电机实现光线追踪系统,详细描述了硬件选择、连接及使用HAL库编写的单片机程序。第三章讲解了最大功率点追踪(MPPT)的原理,并展示了如何利用STM32F103C8T6和相关传感器、DC-DC转换器实现MPPT功能。第四章描述了如何通过STM32F103C8T6与SIM7600CE 4G模块连接到阿里云MQTT服务,实现设备状态数据的远程传输和控制。本文提供了全面的硬
17727 5
|
6月前
|
消息中间件 安全 Apache
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(2)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
252 0
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(2)
|
3月前
|
消息中间件 弹性计算 运维
阿里云云消息队列RabbitMQ实践解决方案评测报告
阿里云云消息队列RabbitMQ实践解决方案评测报告
77 9
|
6月前
|
消息中间件 Cloud Native Apache
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(7)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
123 1
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(7)
|
6月前
|
消息中间件 Cloud Native Apache
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(6)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
123 1
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(6)
|
6月前
|
消息中间件 弹性计算 运维
对比阿里云的SofaMQ与RocketMQ
对比阿里云的SofaMQ与RocketMQ
771 2