Azure 服务总线提供的库可以帮助动态预配服务总线命名空间和实体。 这样可以实现复杂的部署和消息方案,并能以编程方式确定要预配的实体。
概述
可以采用两种方法以编程方式管理 Azure 服务总线资源。 第一种是使用基于 Azure 资源管理器的库,这些库允许用户管理命名空间、队列、主题、订阅、规则和 SAS 策略。 基于 Azure 资源管理器的库支持通过 Microsoft Entra ID 进行身份验证,但不支持通过连接字符串进行身份验证。 第二种方法是利用用于发送和接收消息的同一个服务总线客户端库。 客户端库还提供 API 来帮助管理现有命名空间中的队列、主题、订阅和规则。 它们支持使用连接字符串进行身份验证。 在决定采用哪种方法时,请考虑下列事项。
在管理服务总线命名空间和实体(如队列、主题和订阅等)方面,基于 Azure 资源管理器的库提供与 Azure 门户、CLI 和 PowerShell 相同的功能。如果你一直使用 Azure 门户、CLI 或 PowerShell 进行管理操作,并且想要以动态方式执行该操作,则这些库可能是更好的选择。
但是,如果你已经在使用服务总线的客户端库来执行服务特定操作(如发送和接收消息),并且需要管理服务总线实体,则使用同一个库可能会更方便。 客户端库中有一个 ServiceBusAdministrationClient
(在旧的库中名为 ServiceBusManagementClient
)提供基于 Azure 资源管理器的库提供的管理功能的子集。 必须强调的是,虽然基于 Azure 资源管理器的库允许同时管理服务总线命名空间和实体,但客户端库只允许管理现有命名空间中的实体,而不允许管理命名空间本身。
使用基于 Azure 资源管理器的库进行管理
基于 Azure 资源管理器的库允许管理命名空间、队列、主题、订阅、规则和 SAS 策略。 它们仅支持通过 Microsoft Entra ID 进行身份验证,不支持连接字符串。
Fluent .NET 和 Java 库
基于 Azure 资源管理器的库有 Fluent 版本。
使用服务总线客户端库进行管理
用于发送和接收消息等操作的服务总线客户端库也可用于管理现有服务总线命名空间中的队列、主题、订阅和规则。 此功能可通过最新的库中的 ServiceBusAdministrationClient
和旧库中的 ServiceBusManagementClient
来获取。 强烈建议使用最新的库。
最新的服务总线库
旧的 Azure 服务总线库
语言 | 程序包 | 文档 | 示例 |
---|---|---|---|
.NET | Microsoft.Azure.ServiceBus | ManagementClient | .NET |
Java | azure-mgmt-servicebus | ManagementClientAsync、ManagementClient | Java |
注意
2026 年 9 月 30 日,我们将停用 Azure 服务总线 SDK 库 WindowsAzure.ServiceBus、Microsoft.Azure.ServiceBus 和 com.microsoft.azure.servicebus,这些库不符合 Azure SDK 准则。 我们还将结束对 SBMP 协议的支持,因此在 2026 年 9 月 30 日之后,你将无法再使用此协议。 请在该日期之前迁移到最新的 Azure SDK 库,新库提供了关键安全更新和改进功能。
尽管旧库在 2026 年 9 月 30 日之后仍可使用,但它们将不再获得 Azure 的官方支持和更新。 有关详细信息,请参阅支持停用公告。
后续步骤
- 使用最新的服务总线库向队列发送消息并从队列接收消息:.NET、Java、JavaScript、Python
- 使用最新的服务总线库向主题发送消息并从订阅接收消息:.NET、Java、JavaScript、Python