阿里云ONS而微软Azure Service Bus体系结构和功能比较
阿里云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体系结构和功能比较的更多相关文章
- Windows Azure Service Bus Topics实现系统松散耦合
前言 Windows Azure中的服务总线(Service Bus)提供了多种功能, 包括队列(Queue), 主题(Topic),中继(Relay),和通知中心(Notification Hub) ...
- 微软云消息队列 Azure service bus queue
前言 第一次使用消息队列,遇到了一些问题:同一个消息有多次出列.是一个消息只入列一次,还是多次?还是因为出列问题,出列了多次? Microsoft Azure service bus queue Az ...
- Windows Azure Service Bus (6) 中继(Relay On) 使用VS2013开发Service Bus Relay On
<Windows Azure Platform 系列文章目录> 注意:本文介绍的是国内由世纪互联运维的Windows Azure服务. 项目文件请在这里下载. 我们在使用Azure平台的时 ...
- Azure Service Bus(二)在NET Core 控制台中如何操作 Service Bus Queue
一,引言 上一篇讲到关于 Azure ServiceBus 的一些概念,讲到 Azure Service Bus(服务总线),其实也叫 "云消息服务",是微软在Azure 上提供的 ...
- Azure Service Bus(一)入门简介
一,引言 今天开始学习新的内容 Azure Service Bus(服务总线),其实也叫 "云消息服务",和 RabbitMQ,KafKa的一样都是作为消息通信服务,但是它们直接还 ...
- 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程
Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的 ...
- Azure Service Bus 中的身份验证方式 Shared Access Signature
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- Windows Azure Service Bus (2) 队列(Queue)入门
<Windows Azure Platform 系列文章目录> Service Bus 队列(Queue) Service Bus的Queue非常适合分布式应用.当使用Service Bu ...
- Windows Azure Service Bus Notification Hub推送通知
前言 随着Windows Azure 在中国的正式落地,相信越来越多的人会体验到Windows Azure带来的强大和便利.在上一篇文章中, 我们介绍了如何利用Windows Azure中的Servi ...
随机推荐
- Spring 配置XML文件头部文件格式
普通格式: <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns:xsi="ht ...
- hdu3006之位压缩
The Number of set Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- RHEL双网卡绑定
新增绑定网卡文件: vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 ONBOOT=yes TYPE=Ethernet BOOTPR ...
- error: 'LOGE' was not declared in this scope
移植了下HAL,发现编译出现如下错误 error: 'LOGE' was not declared in this scope 比较了一下android4.1的 system/core/include ...
- 【PythonChallenge】Level 5
题目主要找发声类似于Peak Hell的Python模块,查了一下手册pickle已经是最像的了.看了一下源代码,发现panner.p.如同发现了新大陆,拷贝内容.使用pickle解答.答案为chan ...
- easyui treegrid 封装(不用分页,用加载更多按钮)延迟加载加加载更多
/** * @author wsf数据加载 */ ; var intervalId = null; (function (win,$){ $.myCache = { dataCache : {},// ...
- android 欢迎界面的淡入效果
package com.example.spinnertest; import android.app.Activity; import android.content.Intent; import ...
- 查看ssh服务开启状态
root@dbaudit-desktop:/etc/init.d# /etc/init.d/ssh status * sshd is running 或者这样检查:root@dbaudit-deskt ...
- flume服务的搭建
搭建前先统一时间,关闭防火墙,使用的jar包版本是1.6.0的 服务配置有两种方式 第一种:具体步骤如下: 1.将jar包传至node1上,解压至根目录 2.更改目录名,使用如下命令:mv apach ...
- 【JS】Intermediate1:The DOM
1.DOM(The Document Object Model) A way to manipulate the structure and style of an HTML page. It rep ...