阿里云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 ...
随机推荐
- TSS 任务状态段
TSS(任务状态段) 1 什么是TSS TSS 全称task state segment,是指在操作系统进程管理的过程中,任务(进程)切换时的任务现场信息. 2 TSS工作细节 TSS在任务切换过程 ...
- 李洪强漫谈iOS开发[C语言-015]-变量的使用
- JAVA HASHMAP 如何用
HASHMAP最好与实例联系起来..它主要存的是键与值的关系. 举个例子如你现在有一个学生类import java.util.HashMap;public class Student {String ...
- [unity菜鸟] 修改发布成web后的logo
1. 原始效果 (tip:在4.x的书中有介绍) 2. 打开.html文件原始代码如下 <script type='text/javascript' src='jquery.min.js'&g ...
- CDC 虚拟com口
现在很多电脑已经不带232了,特别是手提电脑.这使很多使用手提在外调试人员非常不方便.或许你可以买一条市面上usb转232转换线,但这些线抗干扰不是太好,在一些干扰大的地方会发生连接中断的问题,所以往 ...
- function(a)
问题: 问个初级的问题int a = 8;function(a);这里在function中的a值是引用a内存中的数据,还是新开辟内存后将a的值赋值到新内存供函数调用. 回答: int a = 8; ...
- IQ Test
IQ Test Description: Bob is preparing to pass IQ test. The most frequent task in this test is to fin ...
- ununtu卸载软件
sudo apt-get remove vim
- SDWebImage源码解读之SDWebImageDownloader
SDWebImage源码解读之SDWebImageDownloader 第八篇 前言 SDWebImageDownloader这个类非常简单,作者的设计思路也很清晰,但是我想在这说点题外话. 如果有人 ...
- HW输入字符串长度,字符串,计数m。从前往后计数,当数到m个元素时,m个元素出列,同时将该元素赋值给m,然后从下一个数计数循环,直到所有数字都出列,给定的数全部为大于0的数字。输出出队队列。
package huawei; import java.util.Scanner; public class 约瑟夫环 { private static class Node { public int ...