阿里云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. Spring 配置XML文件头部文件格式

    普通格式: <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns:xsi="ht ...

  2. hdu3006之位压缩

    The Number of set Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  3. RHEL双网卡绑定

    新增绑定网卡文件: vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 ONBOOT=yes TYPE=Ethernet BOOTPR ...

  4. error: 'LOGE' was not declared in this scope

    移植了下HAL,发现编译出现如下错误 error: 'LOGE' was not declared in this scope 比较了一下android4.1的 system/core/include ...

  5. 【PythonChallenge】Level 5

    题目主要找发声类似于Peak Hell的Python模块,查了一下手册pickle已经是最像的了.看了一下源代码,发现panner.p.如同发现了新大陆,拷贝内容.使用pickle解答.答案为chan ...

  6. easyui treegrid 封装(不用分页,用加载更多按钮)延迟加载加加载更多

    /** * @author wsf数据加载 */ ; var intervalId = null; (function (win,$){ $.myCache = { dataCache : {},// ...

  7. android 欢迎界面的淡入效果

    package com.example.spinnertest; import android.app.Activity; import android.content.Intent; import ...

  8. 查看ssh服务开启状态

    root@dbaudit-desktop:/etc/init.d# /etc/init.d/ssh status * sshd is running 或者这样检查:root@dbaudit-deskt ...

  9. flume服务的搭建

    搭建前先统一时间,关闭防火墙,使用的jar包版本是1.6.0的 服务配置有两种方式 第一种:具体步骤如下: 1.将jar包传至node1上,解压至根目录 2.更改目录名,使用如下命令:mv apach ...

  10. 【JS】Intermediate1:The DOM

    1.DOM(The Document Object Model) A way to manipulate the structure and style of an HTML page. It rep ...