Azure Service Bus(一)入门简介

一,引言

  今天开始学习新的内容 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,服务总线概述

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

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

    分布式应用程序能够在一个(FIFO)模式中共享消息代理

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

2,服务总线消息传递  

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

  消息将只出现一次

  使用先进先出(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 

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

相关文章
相关标签/搜索