Azure Messaging-ServiceBus Messaging消息队列技术系列1-基本概念和架构
前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家。
首先,Windows Azure提供了两种类型的消息队列机制:Azure Queues和ServiceBus Queues。
其中,Azure Queues,作为Azure Storage基础设施的一部分,提供了一套简单的基于Rest的Interface,面向不同的服务间提供可靠的、持久化的消息队列。
ServiceBus Queues作为Azure Messaging基础设施的一部分,支持队列和发布订阅模式,支持WebService和集成模式。
本系列主要介绍ServiceBus Queues。关于二者的选型比较,各位可以参考:
https://azure.microsoft.com/zh-cn/documentation/articles/service-bus-azure-and-service-bus-queues-compared-contrasted
Service Bus(服务总线)支持两种不同的消息模式:relayed messaging and brokered messaging. 即:中继消息模式和代理消息模式。
中继消息模式Relayed messaging,最大的特点就是:收发消息要求服务端和客户端同时在线,不支持异步模式。
消息处理过程:

当Client发送请求到ServiceBus,Azure的负载均衡器将请求路由到任意一个网关节点(Gateway Nodes)。如果请求是一个监听类的请求,网关节点创建一个新的
中继(Relay)。如果请求是一个连接到指定中继(Relay)的请求,请求被转向指定中继所在的网关节点,这个网关节点发送一个交会的请求给监听Client,要求监听Client创建一个临时的通道来接收消息。当中继连接建立之后,
Client之间通过网关节点(Gateway Node)就可以交换消息了。
代理消息模式Borkered messaging:异步、解耦、消息发送者(Producer)和消费者(Consumer)不需要同时在线,消息存储在Broker中(代理),等待消息消费者消费处理。其核心组件包含:队列(Queue)、主题(Topic)、发布订阅等。
消息处理过程:

当Client发送请求到ServiceBus,Azure的负载均衡器将请求路由到任意一个网关节点(Gateway Nodes)。如果这个请求中包含一个消息实体(队列、主题、订阅),网关节点(Gateway Node)首先在网关存储(Gateway Store)中查找定位这个消息实体应该存储到哪个消息存储(Message Store)以及消息存储对应的消息代理节点(Messaging Broker),然后将消息发送到指定的消息代理节点,消息代理节点处理请求、存储消息并更新消息实体状态(Delivered)。消息代理节点发送一个响应返回给请求所在网关节点,进而再返回给请求的Client。
代理消息模式Borkered messaging是一种最常见的通用的消息模式,业界的ActiveMQ、RabbitMQ等消息中间件都支持,也是我们接下来深入研究的重点。
Azure Messaging-ServiceBus Messaging消息队列技术系列1-基本概念和架构的更多相关文章
- Window Azure ServiceBus Messaging消息队列技术系列1-基本概念和架构
前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列-索引篇
Azure Messaging ServiceBus Messaging相关的技术系列,最近已经整理了不少了,统一做一个索引链接,置顶. 方便查找,并后续陆陆续续再增加. 学习消息队列技术,可以先看第 ...
- Window Azure ServiceBus Messaging消息队列技术系列2-编程SDK入门
各位,上一篇基本概念和架构中,我们介绍了Window Azure ServiceBus的消息队列技术的概览.接下来,我们进入编程模式和详细功能介绍模式,一点一点把ServiceBus技术研究出来. 本 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列3-消息顺序保证
上一篇:Window Azure ServiceBus Messaging消息队列技术系列2-编程SDK入门 http://www.cnblogs.com/tianqing/p/5944573.ht ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列4-复杂对象消息是否需要支持序列化和消息持久化
在上一篇中,我们介绍了消息的顺序收发保证: Azure Messaging-ServiceBus Messaging消息队列技术系列3-消息顺序保证 在本文中我们主要介绍下复杂对象消息是否需要支持序列 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列8-服务总线配额
上篇博文中我们介绍了Azure ServiceBus Messaging的消息事务机制: Azure Messaging-ServiceBus Messaging消息队列技术系列7-消息事务(2017 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列5-重复消息:at-least-once at-most-once
上篇博客中,我们用实际的业务场景和代码示例了Azure Messaging-ServiceBus Messaging对复杂对象消息的支持和消息的持久化: Azure Messaging-Service ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列6-消息回执
上篇博文中我们介绍了Azure Messaging的重复消息机制.At most once 和At least once. Azure Messaging-ServiceBus Messaging消息 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列2-编程SDK入门
各位,上一篇基本概念和架构中,我们介绍了Window Azure ServiceBus的消息队列技术的概览.接下来,我们进入编程模式和详细功能介绍模式,一点一点把ServiceBus技术研究出来. 本 ...
随机推荐
- 内存的一些magic number和debug crt(0xCCCCCCCC和0xCDCDCDCD,debug版本的CRT为了方便调试程序的初始值)
调试过debug版本的vc程序的人一定对0xCCCCCCCC和0xCDCDCDCD这样的内存很有印象.这是debug版本的CRT为了方便调试程序,在分配出来还没有初始化的时候提供的初始值. 实际上,W ...
- Mybatis中dao接口和mapper 的加载过程
这里考虑的是mybatis和spring整合的场景 1.在系统启动的时候,会去执行配置文件中有关扫描mybatis接口的配置:通过MapperScannerConfigurer扫描接口生成spring ...
- centos所有版本下载源
http://ftp.sjtu.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso http://mirrors.yun-idc.com/ ...
- 【Python全栈-JavaScript】JavaScript入门
JavaScript基础知识点 一.JavaScript概述 参考:http://www.w3school.com.cn/b.asp JavaScript的历史 1.1992年Nombas开发出C-m ...
- 集齐所有机制的按键控制LED驱动
内核版本:linux2.6.22.6 硬件平台:JZ2440 驱动源码 final_key.c : #include <linux/module.h> #include <linux ...
- Java基础知识(JAVA基本数据类型包装类)
基本数据类型的包装类 为什么需要包装类? Java并不是纯面向对象的语言.Java语言是一个面向对象的语言,但是Java的基本数据类型却不是面向对象的.但是我们在实际使用中经常需要将基本数据转化成对象 ...
- Hibernate的状态
最新的Hibernate文档中为Hibernate对象定义了四种状态(原来是三种状态,面试的时候基本上问的也是三种状态),分别是:瞬时态(new, or transient).持久态(managed, ...
- 火币网API文档——WebSocket API错误码
错误信息返回格式 { "id": "id generate by client", "status": "error", ...
- kafka6 编写使用自定义分区的生产者
一 客户端 在上一篇博客创建的简单生产者的基础上,进行两个修改操作: 1.新建SimplePartitioner.java,修改返回分区为1. SimplePartitioner.java代码如下 p ...
- awk命令分析日志的简单笔记
awk是一个文本分析工具,可以用来进行流量日志分析 之前无意中看到了这个命令,简单记一下笔记 ,在打线下的时候可能会有用 awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gaw ...