阿里云ONS而微软Azure Service bus体系结构和功能比较

版权所有所有,转载请注明出处http://blog.csdn.net/yangzhenping。谢谢!

阿里云的开放消息服务:

一、如图所看到的,ProducerID1 的producer 实例有三个,可能是部署在三个机器上的三个进程,也可能是一台机

器上的三个进程。

每一个实例都会发送TopicA 的消息。同理,ProducerID2 与之类似。

二、ConsumerID1 有三个实例,假设是集群消费方式,那么每一个实例消费TopicA 的1/3 的消息,假设是广播消

费方式,那么每一个实例消费全量的消息。另外。TopicA 也能够被另外的ConsumerId 再次消费。

微软的service bus:



一、与阿里云类似,微软的Service bus中消息也能够由多个进程产生。

二、消费Topic中消息由Consumer进程在创建subscription(订阅)时開始监听全部当前Topic中产生的消息,当前subscription中的消息被消费之后,

在当前subscription中就没有了,可是在当前Topic的其它subscription中还存在。事实上就是Topic把产生的消息都广播发送到每个当前Topic下的subscription下。

这和阿里云的广播不一样,阿里云广播消息是指Product进程广播给Consumer进程。而service bus是Product进程发送消息给Topic。由Topic广播给每一个Topic下的subscription,然后由每一个consumer独自去消费每一个subscription中的消息。

service bus除了提供Topic,还有Queues,Relays,Notification Hubs等类型。

其它差别:

1.ONS消息不支持有序,service bus中Queues支持消息有序。

2.ONS消息仅仅保存3天,service bus中的消息假设不被消费且其当前Topic存在。就永远不会被删除。

3.ONS不能保证消息反复,service bus消息不反复。

4.ONS临时仅仅支持Javaclient。service bus支持.net,java,php,phthon:http://msdn.microsoft.com/en-us/library/azure/jj841071.aspx

5.ONS新创建的 ConsumerId从哪里開始消费

a) 假设订阅的 topic 第一次发送消息是在3天内,那么这个新创建的 ConsumerId默认从server保存的最早消息開始消费

b) 假设订阅的topic第一次发送消息是在 3天前,那么这个新创建的ConsumerId默认从server保存的最晚消息開始消费 ,也就是队列尾部历史不会再消费

c) 假设这个ConsumerId是第二次启动。那么从上消费的位置開始消费

d) 用户假设想从特定位置開始消费,能够通过ONS Console上消 费进度重置功能,指定到详细的时间開始上消费进度重置功能。每次重置仅仅针对特定 ConsumerId下的特定 下的特定 Topic,不会影响其它ConsumerId。

关于第5点,这个service bus和ONS类似,只是不是3天。而是Topic创建和subscription创建的时间差,个人觉得ONS中的CunsumerId和service bus中的subscriptionId非常像,ONS有时间定位的功能,可是service bus眼下没有,必须从头到尾一条一条取。

注意:个人透露一点,service bus经常不稳定的网络传输,ONS此外,还可能有类似问题,在实际项目,我们用了SQL Server+WCF备择方案。

阿里云ONS而微软Azure Service Bus体系结构和功能比较的更多相关文章

  1. Windows Azure Service Bus Topics实现系统松散耦合

    前言 Windows Azure中的服务总线(Service Bus)提供了多种功能, 包括队列(Queue), 主题(Topic),中继(Relay),和通知中心(Notification Hub) ...

  2. 微软云消息队列 Azure service bus queue

    前言 第一次使用消息队列,遇到了一些问题:同一个消息有多次出列.是一个消息只入列一次,还是多次?还是因为出列问题,出列了多次? Microsoft Azure service bus queue Az ...

  3. Windows Azure Service Bus (6) 中继(Relay On) 使用VS2013开发Service Bus Relay On

    <Windows Azure Platform 系列文章目录> 注意:本文介绍的是国内由世纪互联运维的Windows Azure服务. 项目文件请在这里下载. 我们在使用Azure平台的时 ...

  4. Azure Service Bus(二)在NET Core 控制台中如何操作 Service Bus Queue

    一,引言 上一篇讲到关于 Azure ServiceBus 的一些概念,讲到 Azure Service Bus(服务总线),其实也叫 "云消息服务",是微软在Azure 上提供的 ...

  5. Azure Service Bus(一)入门简介

    一,引言 今天开始学习新的内容 Azure Service Bus(服务总线),其实也叫 "云消息服务",和 RabbitMQ,KafKa的一样都是作为消息通信服务,但是它们直接还 ...

  6. 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程

    Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的 ...

  7. Azure Service Bus 中的身份验证方式 Shared Access Signature

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  8. Windows Azure Service Bus (2) 队列(Queue)入门

    <Windows Azure Platform 系列文章目录> Service Bus 队列(Queue) Service Bus的Queue非常适合分布式应用.当使用Service Bu ...

  9. Windows Azure Service Bus Notification Hub推送通知

    前言 随着Windows Azure 在中国的正式落地,相信越来越多的人会体验到Windows Azure带来的强大和便利.在上一篇文章中, 我们介绍了如何利用Windows Azure中的Servi ...

随机推荐

  1. 李洪强iOS开发之-PCH文件的配置

    pch 可以用来存储共享信息,比如设备屏幕的宽度,高度.版本号等等 公用信息 Xcode 老版本会自动为我们创建pch文件,新版本开始不自动创建了,如果需要使用可以自己手动创建 创建完成后可以在里面定 ...

  2. QT4项目升级到QT5遇到的问题和解决方法

    QT4升级到QT5改动: PC部分: [改QTDIR变量] 在工程根目录下找到.user文件, 如InnoTabPlugin.vcxproj.user 修改指向你的QT5根目录: <Proper ...

  3. VIM 及其插件使用快捷键汇总

    我的博客:www.while0.com vim搜索取消高亮 :nohl

  4. Good vs Evil

    Good vs Evil Description Middle Earth is about to go to war. The forces of good will have many battl ...

  5. ie调试器

    最大化影响调试的,点右上角的固定按妞

  6. 结构体typedef struct dtuple_struct dtuple_t;

    /** Structure for an SQL data tuple of fields (logical record) */ struct dtuple_struct { ulint info_ ...

  7. 转自 Because of you 的总结

    上下界网络流的问题严格的分,可以分为四类吧. 1:无源汇可行流  sgu 194 2:有源汇可行流  poj 2396  这题比较好,我建图建了将近200行 3:有源汇最大流  zoj 3496  这 ...

  8. 修改UISearchBar的Cancel按钮为中文等本地化问题

    正确方法: 1:创建本地化strings. InfoPlist.strings 2:对InfoPlist.strings添加本地化语言. 即可. 只要添加文件, 系统会根据语言来调整显示文字 常见的搜 ...

  9. Error:Could not open initscript class cache for initialization script 'C:\Users\Avishek\AppData\Local\Temp\asLocalRepo14.gradle' (C:\Users\Avishek.gradle\caches\2.2.1\scripts\asLocalRepo14_dkwbdtenxxg

    Error:Could not open initscript class cache for initialization script 见鬼 Android Studio打开项目时遇到这个问题 昨 ...

  10. ZOJ 3795 Grouping

    大致题意是给n个人和m组关系,每组关系都是两个人s和t,表示s年龄不小于t的年龄,然后让你把这n个人分组,使得任何一个组里面的任意两人都不能直接或间接的得出这两个人的年龄大小关系. 思路:根据给出的关 ...