消息服务MNS和消息队列ONS产品对比

MNS已经进过严格测试,已达到商业化的稳定性要求,其主要特点和适用场景
1.数据高可靠(10个9),对于数据可靠性敏感(要求消息数据不丢)的应用场景建议选择。
2.所有API符合HTTP RESTFUL 标准,方便接入,对于由于有不同网络安全域之间数据交换要求的场景建议选择,只需要http80端口开放就可以(一般默认开放),不需要开放额外端口。
3.后端存储采用阿里云自主研发的飞天分布式系统(已广泛应用于阿里云各个云产品),单集群规模已达到5k台,消息堆积无上限,对于消息堆积有上亿级别要求的用户场景,建议选择。
4.由于使用HTTP Restful 接口,SDK客户端无状态,不会占用用户服务器过多CPU 资源。对于用户服务器CPU 占用有要求的场景建议选择。
5.保证用户消息至少被消费一次语义。对于消息处理有此类要求的场景建议选择。
6.保证消息写高可用(always writable)。对于写消息可用性要求较高的用户建议选择。
7.MNS API 已全部支持RAM主子账号访问,方便企业按账号角色对MNS访问权限进行管理。

 

历史

LinkedIn在发达后,急需一个消息系统,他们的业务主要基于JAVA,在考查了JMS等等后,认为现有的不能满足他们的要求,于是发展了自己的MQ系统,特点是大量利用了当时飞速发展的hadoop系统中的zookeeper,

2011年,LinkedIn将他们的MQ开源,命名为Kafka

在2012年淘宝的双11压力,促使淘宝也开发自己的MQ系统,但淘宝的业务和LinkedIn并不太相似,所以淘宝借用了Kafka的zookeeper思想,自己实现了自己的MQ,淘宝也将其开源,命名为metaQ,这大约发生淘宝在metaQ上发展了数年,一直发展到3.0版本,时间到了2014年,改名为RocketMQ,阿里云上线后,基于RocketMQ部署的就是ONS。

但RocketMQ是云时代之前的产物,云时代的阿里云基于飞天系统,天生的大规模计算能力
2014年,新的基于飞天系统开发的新的MQ系统,MQS
2015年,重新命名为 MNS

结论

如果你只想使用MQ,并且不打算迁移到别的平台,那么推荐使用MNS,它是新开发的系统,无论性能还是稳定性,都远超ONS
但你有时想要自己部署一套自己的MQ,或者以后有可能迁移到非阿里云的环境,那么使用ONS,你可以自己部署一套RocketMQ来平稳过渡

 

参考

消息服务MNS和消息队列ONS产品对比

消息服务MNS和消息队列ONS产品对比的更多相关文章

  1. JMS(Java消息服务)与消息队列ActiveMQ基本使用(一)

    最近的项目中用到了mq,之前自己一直在码农一样的照葫芦画瓢.最近几天研究了下,把自己所有看下来的文档和了解总结一下. 一. 认识JMS 1.概述 对于JMS,百度百科,是这样介绍的:JMS即Java消 ...

  2. 【9】JMicro微服务-发布订阅消息服务

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 1. JMicro消息服务目前实现特性 a. JMicro只支持发布订阅消息服务,不支持队列式消息服务: b. 不支持消息持 ...

  3. MQ消息队列(2)—— Java消息服务接口(JMS)

    一.理解JMS   1.什么是JMS?         JMS即Java消息服务(Java Message Service)应用程序接口,API是一个消息服务的标准或者说是规范,允许应用程序组件基于J ...

  4. WCF分布式开发步步为赢(13):WCF服务离线操作与消息队列MSMQ

    之前曾经写过一个关于MSMQ消息队列的文章:WCF分布式开发必备知识(1):MSMQ消息队列 ,当时的目的也是用它来作为学习WCF 消息队列MSMQ编程的基础文章.在那篇文章里,我们详细介绍了MSMQ ...

  5. JMS(Java消息服务)入门教程

    什么是Java消息服务 Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持JAVA应用程序开发.在J2EE中 ...

  6. “一切都是消息”--MSF(消息服务框架)入门简介

    “一切都是消息”--这是MSF(消息服务框架)的设计哲学. MSF的名字是 Message Service Framework 的简称,中文名称:消息服务框架,它是PDF.NET框架的一部分. 1,M ...

  7. 分布式系统的消息&服务模式简单总结

    分布式系统的消息&服务模式简单总结 在一个分布式系统中,有各种消息的处理,有各种服务模式,有同步异步,有高并发问题甚至应对高并发问题的Actor编程模型,本文尝试对这些问题做一个简单思考和总结 ...

  8. java消息服务学习之JMS概念

    JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信. ...

  9. “一切都是消息”--iMSF(即时消息服务框架)入门简介

    “一切都是消息”--这是iMSF(即时消息服务框架)的设计哲学. MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately) ...

随机推荐

  1. eclipse 突然 一直在loading descriptor for XXX (XXX为工程名)Cancel Requested

    问题: eclipse 启动后,啥也不干,就一直在loading descriptor for XXX (XXX为工程名),,其他什么操作都不能操作. 如下图所示,保存文件也无法保存.  这个怎么办? ...

  2. 【.net深呼吸】WPF异步加载大批量图像

    如何在WPF中加载大批量数据,并且不会阻塞UI线程,尤其是加载大量图片时,这活儿一直是很多朋友都相当关注的.世上没有最完美的解决之道,咱们但求相对较优的方案. 经过一些试验和对比,老周找到了一种算是不 ...

  3. 移动端HTML5音频与视频问题及解决方案

    最近在研究用视频代替动画,用视频代替精灵动画,我们称这种视频叫做交互视频. 传统的精灵动画: 磁盘空间大,下载慢,尤其是在线播放,会更慢 文件太多,在线播放的时候,太多http请求,会导致响应慢,或者 ...

  4. Node.js:DNS模块的使用

    Nodejs的DNS模块包涵有关DNS查询和操作的方法,下面介绍该模块的基本用法以及实现一个DNS查询小工具. 1.获取DNS服务器地址 使用getServers方法,该方法返回一个IP地址组成的数组 ...

  5. 别语言之争了,最牛逼的语言不是.NET,也不是JAVA!

    谁都不用说,博客园明显的偏.NET,C#的讨论一出现,推荐讨论热火朝天,而发点JAVA的东西,应者寥寥.一旦有出现两大派系的竞争,那绝对是头条.每天都看,早就麻木了. 研二的我浸淫.NET已经三四年, ...

  6. ORACLE快速彻底Kill掉的会话

    在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源 ...

  7. python3爬取1024图片

    这两年python特别火,火到博客园现在也是隔三差五的出现一些python的文章.各种开源软件.各种爬虫算法纷纷开路,作为互联网行业的IT狗自然看的我也是心痒痒,于是趁着这个雾霾横行的周末瞅了两眼,作 ...

  8. 我看不下去鸟。。。。Java和C#的socket通信真的简单吗?

    这几天在博客园上看到好几个写Java和C#的socket通信的帖子.但是都为指出其中关键点. C# socket通信组件有很多,在vs 使用nuget搜索socket组件有很多类似的.本人使用的是自己 ...

  9. C#开发微信门户及应用(34)--微信裂变红包

    在上篇随笔<C#开发微信门户及应用(33)--微信现金红包的封装及使用>介绍了普通现金红包的封装和使用,这种红包只能单独一次发给一个人,用户获取了红包就完成了,如果我们让用户收到红包后,可 ...

  10. MySQL: Table 'mysql.plugin' doesn't exist的解决

    安装解压版MySQL以后,不能启动,日志里面出现了这个错误: MySQL: Table 'mysql.plugin' doesn't exist 这是因为mysql服务启动时候找不到内置数据库&quo ...