一,引言

  今天开始学习新的内容 Azure Service Bus(服务总线),其实也叫 ”云消息服务“,和 RabbitMQ,KafKa的一样都是作为消息通信服务,但是它们直接还有有很多区别的,我这里就不过多解释了,大家可以自行了解。以下是我对Azure Service Bus的理解

Azure Service Bus:是微软在Azure 上提供的一种 ”云消息服务“,在应用和服务之间传递消息时,即使消息的接受着处于脱机状态下,也不影响接收者在联机后接收信息。保证了消息数据的可靠性和持久性,同时数据通过消息在不同的应用程序和服务之间传输。 消息采用二进制格式,可能包含 JSON、XML 或纯文本。但是缺点就是成本和消息大小。Azure Service Bus 队列消息必须大于 64KB,同时还必须小于 256KB

这时候有人就说了,那 Azure Storage Queue 和Azure Service Bus 有啥区别?

  Azure Storage Queue:允许我们存储大量的消息可以被使用者读取,并且队列消息非常灵活,如果初始使用者出现故障,则可以由不同的消费进程再次处理。队列可以在消费者之间保存状态。

  Azure Service Bus:服务总线队列提供了一个代理消息通信模型。分布式应用程序可以在一个FIFO 模式中共享消息,同时单个消息只能由一个消息使用者接收。

Storage Queues Service Bus Queues
任意排序 使用FIFO保证排序
交付至少一次, 可能多次 至少交付一次,最多一次
30秒默认锁可以延长到7天 60秒的默认锁可以续订
支持就地更新消息内容 消息在一次消费后被删除
可以与 WF 集成 与 WCF和WF本地集成

二,正文

1,服务总线概述

服务总线是一个托管消息传递基础结构 ,它构建可伸缩性的应用 ,并且允许我们使用消息传递平台扩展应用程序,而且解耦组件之间的同步通信和异步通信。

  1.1 服务总线队列提供了一个代理消息模型。

    分布式应用程序可以在一个(FIFO)模式中共享消息

    单个消息只能由一个消息使用者接收

2,服务总线消息传递  

服务总线队列提供了一个对消息的顺序和传递进行严密控制的排队机制

  消息将只出现一次

  使用先进先出(FIFO)模式处理消息

  支持事务

3,服务总线功能

  Relayed Messaging

  PublishSubscribe Topics

  Queues

  Notification Hubs

4,服务总线队列消息的特征

服务总线队列消息由以下几个主要部分组成

  4.1 Body

    正文可以是任何可序列化的对象或者流

    DataContractSerializer  可用于序列化复杂对象

  4.2 Lable

    标签文本

  4.3 TimeToLive

  4.4 Properties  

    可供使用的属性字典

  服务总线适用于传统企业应用程序。 这些企业应用程序需要事务、排序、重复检测和即时一致性。 服务总线使得云原生应用程序能够为业务进程提供可靠的状态转换管理。 处理不能丢失或复制的高价值消息时,请使用 Azure 服务总线。 服务总线还利于跨混合云解决方案的高度安全通信,并且可以将现有本地系统连接到云解决方案。

服务总线是一个中转消息传送系统。 它将消息存储在“中转站”(例如队列)中,直到使用方准备好接收这些消息。Azure 服务总线可以通过三种不同的方式交换消息:队列、主题和中继。

  队列是消息的简单临时存储位置。 发送方组件将消息添加到队列。 目标组件在队列的前面提取消息。 在一般情况下,每条消息仅由一个接收方接收。

  主题与队列类似,但可以包含多个订阅。 这意味着,多个目标组件可以订阅单个主题,以便将每条消息发送到多个接收方。 订阅还可以筛选主题中的消息,以便只接收相关的消息。 与队列一样,订阅提供相同的解耦式通信,并且以相同的方式响应高需求。 若要将每条消息传送到多个目标组件,请使用主题。

基本定价层中不支持主题。

  中继是在应用程序之间执行同步双向通信的对象。 与队列和主题不同,它不是消息的临时存储位置。 相反,它可以跨防火墙等网络边界提供双向无缓冲的连接。 若要在组件之间进行直接通信,请使用中继,就如同这些组件位于同一网段上,但受到网络安全设备的隔离。

以上简单了介绍了以下关于 Azure ServiceBus,以及服务总线消息传递的特征。以及Storage Queue 和 ServiceBus 的些许差别,一句话就是

  如果你的要求比较简单,如果需要将每条消息只发送到一个目标,或如果想要尽可能快地编写代码,存储队列则可能是最佳选择。 否则,可以利用服务总线提供的更多选项和更高灵活性。若要将消息发送到多个订阅者,请使用服务总线主题。

三,结尾

  OK,今天的分享到此结束,下一篇实战,通过代码实现服务总线主题和队列,本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还包含,并且指出不足之处!!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

参考资料:https://docs.microsoft.com/zh-cn/azure/service-bus-messaging/

作者:Allen

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

Azure Service Bus(一)入门简介的更多相关文章

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

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

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

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

  3. Azure Service Bus(三)在 .NET Core Web 应用程序发送ServiceBus Queue

    一,引言 在之前上一篇讲解到 Azure ServiceBus Queue 中,我们实地的演示了在控制台中如何操作ServiceBus Queue ,使用 Azure.Messgae.Service ...

  4. Windows Azure Service Bus (3) 队列(Queue) 使用VS2013开发Service Bus Queue

    <Windows Azure Platform 系列文章目录> 在之前的Azure Service Bus中,我们已经介绍了Service Bus 队列(Queue)的基本概念. 在本章中 ...

  5. Windows Azure Service Bus (4) Service Bus Queue和Storage Queue的区别

    <Windows Azure Platform 系列文章目录> 熟悉笔者文章的读者都了解,Azure提供两种不同方式的Queue消息队列: 1.Azure Storage Queue 具体 ...

  6. 【Azure 服务总线】详解Azure Service Bus SDK中接收消息时设置的maxConcurrentCalls,prefetchCount参数

    (Azure Service Bus服务总线的两大类消息处理方式: 队列Queue和主题Topic) 问题描述 使用Service Bus作为企业消息代理,当有大量的数据堆积再Queue或Topic中 ...

  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 Topics实现系统松散耦合

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

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

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

随机推荐

  1. 推荐系统实践 0x07 基于邻域的算法(2)

    基于邻域的算法(2) 上一篇我们讲了基于用户的协同过滤算法,基本流程就是寻找与目标用户兴趣相似的用户,按照他们对物品喜好的对目标用户进行推荐,其中哪些相似用户的评分要带上目标用户与相似用户的相似度作为 ...

  2. P3287 [SCOI2014]方伯伯的玉米田

    首先可以证明,一定存在一种最优解,每次选择的区间结尾都是 \(n\).因为如果某一个区间结尾不是 \(n\),将其替换成 \(n\) 仍然保持单调不下降.接着都按这个策略拔高玉米. 令 \(f_{i, ...

  3. 【Updating】汇编语言学习记录02

    换码指令.字符的输出 前置知识: XLAT 指令:将BX指定的缓冲区中.AL指定的位移处的一个字节数据取出赋给AL,实际相当于(AL) = (DS:(BX+AL)).注意,不是单纯地赋予AL+BX,而 ...

  4. 给你的C/C++学习路线建议

    因为程序员的高工资,吸引了大部人学习编程,但是通过书籍和视频来学习,总是别人推荐一点是一点,那么如何才能系统有效的学习呢?今天就为你来介绍~ C语言是所有学习编程的人都应该首要学习的语言,今天就C语言 ...

  5. LeetCode 刷题总结

    LeetCode上的题很不错,都短小精悍. 先说说我自己.本科一直都是偏硬件,做些单片机.FPGA的东西.本科毕业设计写了个Android APP,控制外围电路(一个小车).可以通过Android手机 ...

  6. 「刷题笔记」Tarjan

    贴一个讲得非常详细的\(tarjan\)入门教程 信息传递 讲个笑话:我之前用并查集求最小环过的这题,然后看见题目上有个\(tarjan\)标签 留下了深刻的印象:\(tarjan\)就是并查集求最小 ...

  7. day101:MoFang:模型构造器ModelSchema&注册功能之手机号唯一验证/保存用户注册信息/发送短信验证码

    目录 1.模型构造器:ModelSchema 1.SQLAlchemySchema 2.SQLAlchemyAutoSchema 2.注册功能基本实现 1.关于手机号码的唯一性验证 2.保存用户注册信 ...

  8. UML第二次作业(代码互评)

    博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/ 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018S ...

  9. 记安装Wampsever

    遇到的问题: Wampsever 启动所有服务后图标为黄色 localhost 问题:显示 IIS Windows 在用 localhost 访问本机的php文件和用ip地址(不是127.0.0.1) ...

  10. 【GDOI2007】JZOJ2020年8月10日提高组T1 夏娜的菠萝包

    [GDOI2007]JZOJ2020年8月10日提高组T1 夏娜的菠萝包 题目 Description 夏娜很喜欢吃菠萝包,她的经纪人RC每半个月就要为她安排接下来的菠萝包计划.今天是7月份,RC又要 ...