Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure Service Bus会话允许对相关消息的无绑定序列进行联合有序处理。 会话可在 先出(FIFO) 和 请求-响应 模式中使用。 有关详细信息,请参阅 消息会话。 本文展示了为服务总线队列或订阅启用会话的不同方法。
重要
- Service Bus的基本层不支持会话。 标准套餐和高级套餐支持开展会话。 有关这些层之间的差异,请参阅 Service Bus 定价。
- 在创建队列或订阅后,不能启用或禁用消息会话。 只能在创建队列或订阅时执行此操作。
使用 Azure 门户
在 Azure 门户中创建 queue 时,请选择 Enable 会话如下图所示。
在 Azure 门户中为主题创建订阅时,请选择 启用会话,如下图所示。
使用Azure CLI
若要创建启用了消息会话的队列,请使用将az servicebus queue create设置为--enable-session的true命令。
az servicebus queue create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--name myqueue \
--enable-session true
若要为启用了消息会话的主题创建订阅,请使用az servicebus topic subscription create命令,并将--enable-session设置为true。
az servicebus topic subscription create \
--resource-group myresourcegroup \
--namespace-name mynamespace \
--topic-name mytopic \
--name mysubscription \
--enable-session true
使用 Azure PowerShell
若要创建启用了消息会话的队列,请使用将New-AzServiceBusQueue设置为-RequiresSession的$True命令。
New-AzServiceBusQueue -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-QueueName myqueue `
-RequiresSession $True
若要为启用了消息会话的主题创建订阅,请使用New-AzServiceBusSubscription命令,并将-RequiresSession设置为true。
New-AzServiceBusSubscription -ResourceGroup myresourcegroup `
-NamespaceName mynamespace `
-TopicName mytopic `
-SubscriptionName mysubscription `
-RequiresSession $True
使用模板
若要创建启用消息会话的队列,请在“队列属性”部分中将requiresSession设置为true。 有关详细信息,请参阅 Microsoft.ServiceBus 命名空间/队列模板参考。
@description('Name of the Service Bus namespace')
param serviceBusNamespaceName string
@description('Name of the Queue')
param serviceBusQueueName string
@description('Location for all resources.')
param location string = resourceGroup().location
resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
name: serviceBusNamespaceName
location: location
sku: {
name: 'Standard'
}
resource queue 'queues' = {
name: serviceBusQueueName
properties: {
requiresSession: true
}
}
}
若要为启用了消息会话的主题创建订阅,应在订阅属性部分中设置requiresSession为true。 有关详细信息,请参阅 Microsoft.ServiceBus 命名空间/主题/订阅模板参考。
@description('Name of the Service Bus namespace')
param serviceBusNamespaceName string
@description('Name of the Topic')
param serviceBusTopicName string
@description('Name of the Subscription')
param serviceBusSubscriptionName string
@description('Location for all resources.')
param location string = resourceGroup().location
resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
name: serviceBusNamespaceName
location: location
sku: {
name: 'Standard'
}
resource topic 'topics' = {
name: serviceBusTopicName
properties: {
maxSizeInMegabytes: 1024
}
resource subscription 'subscriptions' = {
name: serviceBusSubscriptionName
properties: {
requiresSession: true
}
}
}
}
后续步骤
尝试使用所选语言的示例来探索Azure Service Bus功能。
- Azure Service Bus 客户端库示例(.NET 最新版)
- Azure Service Bus 用于 Java 的客户端库示例(最新版)
- Azure Service Bus 客户端库 Python 示例
- 适用于 JavaScript 的 Azure Service Bus 客户端库示例
- typeScript 的 Azure Service Bus 客户端库示例
在下面查找较旧的.NET和Java客户端库的示例:
注意
2026 年 9 月 30 日,我们将停用 Azure Service Bus SDK 库 WindowsAzure.ServiceBus Microsoft.Azure。ServiceBus 和 com.microsoft。azure.servicebus 不符合Azure SDK准则。 我们还将结束对 SBMP 协议的支持,因此在 2026 年 9 月 30 日之后,你将无法再使用此协议。 在该日期之前迁移到最新的 Azure SDK 库,这些库提供关键的安全更新和改进的功能。
尽管旧库仍可在 2026 年 9 月 30 日以后使用,但它们将不再从Azure获得官方支持和更新。 有关详细信息,请参阅支持停用公告。