首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么是 Azure 服务总线?

关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。

使用服务总线将应用程序和服务分离时,具有以下优势。

介绍

消息队列和发布-订阅主题是完全托管的企业消息代理 Azure 服务总线(在命名空间中)的功能。使用服务总线将应用程序和服务彼此分离时,具有以下优势:

在竞争对手的员工之间分配任务。

以安全的方式跨服务和应用程序边界交换数据和控制。

协调需要高度可靠性的事务性工作。

微软 Azure 总线服务概述

消息用于在各种应用程序和服务之间移动数据。消息是一个充满数据的容器,上面有元数据。任何类型的信息都可以用作数据,包括以 JSON、XML、Apache Avro 和纯文本等流行格式存储的结构化数据。

典型的消息情况包括:

消息。

传输公司信息,例如日记帐、库存移动或销售或采购订单。

解耦应用程序

应用程序和服务应该更具可扩展性和可靠性。生产者和消费者不必同时在线或可用。负载被均衡,使得流量激增不会使服务负担过重。

负载均衡

允许许多并发消费者在从队列中读取时安全地声明对单个消息的独占所有权。

主题和订阅

启用发布者和订阅者之间的 1:n 关系将允许订阅者从发布的消息流中选择消息。

事务使您能够在单个原子事务的上下文中执行许多操作。例如,可以在交易的参数内部执行以下操作。

应从一个队列中获取消息。

处理结果应该发布到一个或多个队列。

输入消息应从原始队列中移出。

只有在成功时,包括输入消息的成功结算,结果才会对下游消费者显而易见,从而实现一次性处理语义。更大的解决方案上下文中的补偿事务模式在此事务模型中具有坚实的基础。

消息会话

实施需要消息延迟或严格消息排序的高级流程协调和多路传输。

Service Bus 的思想与其他消息代理(例如 Apache ActiveMQ)的思想类似。一个重要的区别是,因为服务总线是一种平台即服务 (PaaS) 解决方案,所以您不必担心执行以下任务。Azure 会为你处理这些差事。

担心硬件故障

为产品或操作系统打补丁

管理磁盘空间和添加日志

管理备份

切换到备份机器

队列

队列用于发送和接收消息。消息被保存在队列中,直到接收应用程序准备好接受和处理它们。

到达时,队列中的消息会被排序并加上时间戳。如果命名空间启用了区域,则消息在被代理接受后始终持久保存在三重冗余存储中。在客户端报告消息已被接受之前,服务总线会将其保留在内存或其他易失性存储中。

拉取模式消息传递仅响应请求发送消息。与其他一些云队列的繁忙轮询模型相反,拉取操作可能需要很长时间,并且只有在消息准备就绪时才能完成。

主题Topics

主题也可用于发送和接收消息。对于点对点通信,经常使用队列。但是,主题在发布/订阅应用程序中很有用。

主题可以有多个独立的订阅。这些订阅附加到主题,并且在其他方面的功能与接收方的队列完全一样。发送给主题的每条消息都可以复制并发送给该主题的订阅者。命名实体是订阅。尽管订阅旨在无限期持续,但可以将它们设置为过期,然后自动删除。您还可以使用 Java 消息服务 (JMS) API 通过 Service Bus Premium 构建可变订阅,该 API 仅在连接处于活动状态时才处于活动状态。

在订阅中,可以设置规则。用于指定将消息复制到订阅中的先决条件的过滤器和用于更改消息信息的可选操作都包含在订阅规则中。有关更多详细信息,请参阅主题过滤器和操作。以下情况需要使用此功能:

不应将订阅设置为接收在某个主题上发布的每条消息。

当消息通过订阅时,您希望用额外的元数据标记它们。

命名空间

所有消息传递组件都包含在名称空间(队列和主题)中。命名空间可以包含许多队列和主题;因此,名称空间经常充当应用程序的容器。

命名空间可以比作其他代理术语中的服务器,但概念并不直接等同。服务总线命名空间是由数十个全活动虚拟机组成的大型集群的您自己的容量切片。它可以选择跨越三个 Azure 可用性区域。因此,您可以获得大规模运行消息代理的所有可用性和稳健性优势。而且您无需担心潜在的复杂性。服务总线是无服务器消息传递。

高级功能

此外,Service Bus 包含复杂的功能,可让您处理更棘手的消息传递问题。这些主要特征在以下各节中进行了解释:

消息会话

使用会话在服务总线中实现先进先出 (FIFO) 保证。消息会话使得对链接消息的无限序列的组合和有组织的处理成为可能。

自动转发

您可以使用自动转发功能将一个队列或订阅链接到属于同一命名空间的另一个队列或主题。激活自动转发后,服务总线会自动将消息从第一个订阅(源)或队列(主题)移动到第二个队列(主题)(目标)。

Dead-Lettering

服务总线支持死信队列 (DLQ),用于存储无法处理或传递给任何接收方的消息。之后,您可以检查和删除 DLQ 中的消息。

Scheduled Delivery

为了进一步处理,您可以将消息添加到队列或主题。例如,计划一项工作,以便系统可以在特定时间对其进行处理。

消息延迟

当队列或订阅客户端收到它想要处理但由于应用程序中的独特条件而现在不能立即处理的消息时,该实体可能会推迟检索消息,直到以后再检索。消息被放在一边,但仍在队列或订阅中。

Transactions

事务通过组合两个或多个操作来创建执行范围。在事务上下文中,服务总线支持针对单个消息传递实体(队列、主题或订阅)的分组操作。

过滤和操作

订户可以指定他们希望接收来自某个主题的哪些消息。这些消息以一个或多个命名订阅规则的形式被描述。订阅在每个匹配规则条件下生成消息的副本,可以为每个匹配规则进行不同的注释。

空闲时自动删除

您可以使用“空闲时自动删除”定义空闲时间间隔,之后队列将被自动删除。当队列中有活动时,将重置间隔。五分钟是最短的时间。

重复检测

多次检测通过允许发送方再次传输相同的消息来消除这些情况下的不确定性,并且如果发生错误使客户端不确定发送操作的结果,队列或主题将丢弃任何重复的副本。

共享访问签名 (SAS)、基于角色的访问控制和托管身份

对于 Azure 资源,服务总线提供安全协议,例如托管标识、基于角色的访问控制和共享访问签名 (SAS)。

地理灾难恢复

当这些区域或数据中心出现故障时,异地灾难恢复使数据处理能够在另一个 Azure 区域或数据中心继续进行。

安全

服务总线支持标准 HTTP/REST 和高级消息队列协议 (AMQP) 1.0 协议。

遵守标准和协议

高级消息队列协议 (AMQP) 1.0 是一个开放的 ISO/IEC 标准,是服务总线的主要线路协议。客户可以使用它来创建与服务总线和本地安装的代理(如 ActiveMQ 或 RabbitMQ)交互的程序。如果您希望构建这样的抽象,AMQP 协议指南提供了全面的指导。

适用于 Java/Jakarta EE 的 Java 消息服务 (JMS) 2.0 API 完全符合 Service Bus Premium。服务总线标准还支持 JMS 1.1 的以队列为中心的子集。JMS 是一种典型的消息代理抽象,适用于范围广泛的程序和框架,包括著名的 Spring 框架。您只需重新配置队列和主题结构,更新客户端提供程序依赖项,并配置 Azure 服务总线以替换其他代理。有关说明,请参阅 ActiveMQ 迁移指南。

客户端库

Azure SDK 提供完全支持的服务总线客户端库。

.NET Azure 服务总线

Java 中的 Azure 服务总线库

Azure 服务总线的 Java JMS 2.0 提供程序

Azure 服务总线中的 JavaScript 和 TypeScript 模块

Microsoft Azure 服务总线库

任何兼容 AMQP 1.0 的协议客户端都可以使用 Azure 服务总线的主要协议 AMQP 1.0。有几个开源 AMQP 客户端可用的示例,这些客户端专门显示了服务总线兼容性。要了解如何通过 AMQP 1.0 客户端直接使用服务总线功能,请参阅 AMQP 1.0 协议指南。

一体化

Service Bus 无缝连接各种 Azure 和 Microsoft 服务,包括:

事件网格

逻辑应用

Azure 函数

动力平台

动态 365

Azure 流分析

Azure 总线服务的功能

简化云上的业务消息传递

如果您需要在应用程序和服务之间进行极其可靠的云消息传递,请依靠服务总线,即使这些服务没有运行。这种完全托管的解决方案可在所有 Azure 区域访问,消除了服务器管理和许可的责任。异步操作、结构化的先进先出 (FIFO) 消息传递和发布/订阅功能为您在代理客户端和服务器之间的消息传递时提供了更多自由。

构建可扩展的云解决方案

使用异步消息传递模式的优势来可靠地扩展您的企业系统。将服务总线通信与 Azure SQL 数据库、Azure 存储和 Web 应用程序等云资源集成,以在可变负载下实现稳定运行,并具有承受间歇性故障的弹性。

实施复杂的消息传递工作流

构建具有复杂路由的消息传递结构以提高可用性。利用服务总线将消息按比例向下游系统传送,并将消息传送给各种订阅者。

使您现有的 Java 消息服务 (JMS 2.0) 应用程序能够通过 AMQP 与服务总线对话

无需担心与在本地或基础架构即服务 (IaaS) 环境中运行消息传递代理相关的许可价格或运营费用,获得具有本机 JMS 支持的完全托管的企业消息传递解决方案。

服务总线定价

连接私有和公共云环境

称为 Azure 服务总线的消息传递架构位于应用程序之间,支持消息交换以提高可扩展性和弹性。

点击这里了解更多详情。

结论

消息队列和发布-订阅主题是完全托管的企业消息代理 Azure 服务总线(在命名空间中)的功能。使用服务总线将应用程序和服务彼此分离时,具有以下优势:

在竞争对手的员工之间分配任务。

以安全的方式跨服务和应用程序边界交换数据和控制。

协调需要高度可靠性的事务性工作。

消息用于在各种应用程序和服务之间移动数据。消息是一个充满数据的容器,上面有元数据。任何类型的信息都可以用作数据,包括以 JSON、XML、Apache Avro 和纯文本等流行格式存储的结构化数据。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230210A01FXT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券