Editar

Azure Service Bus - Perguntas frequentes (FAQ)

Este artigo discute algumas perguntas frequentes sobre o Microsoft Azure Service Bus. Também pode visitar as Perguntas frequentes de Suporte do Azure para obter informações gerais sobre preços e suporte do Azure.

Perguntas gerais sobre o Barramento de Serviço do Azure

O que é o Azure Service Bus?

O Barramento de Serviço do Azure é uma plataforma de nuvem de mensagens assíncrona que permite enviar dados entre sistemas dissociados. A Microsoft oferece esse recurso como um serviço, o que significa que você não precisa hospedar seu próprio hardware para usá-lo.

O que é um namespace do Service Bus?

Um namespace fornece um contêiner de escopo para endereçar recursos do Service Bus em seu aplicativo. Criar um namespace é necessário para usar o Service Bus e é uma das primeiras etapas para começar.

O que é uma fila do Barramento de Serviço do Azure?

Uma fila do Service Bus é uma entidade na qual as mensagens são armazenadas. As filas são úteis quando você tem vários aplicativos ou várias partes de um aplicativo distribuído que precisam se comunicar entre si. A fila é semelhante a um centro de distribuição, na medida em que vários produtos (mensagens) são recebidos e, em seguida, enviados a partir desse local.

O que são tópicos e assinaturas do Barramento de Serviço do Azure?

Um tópico pode ser visualizado como uma fila e, ao usar várias assinaturas, torna-se um modelo de mensagens mais rico; essencialmente uma ferramenta de comunicação um-para-muitos. Esse modelo de publicação/assinatura (ou pub/sub) permite que um aplicativo que envia uma mensagem para um tópico com várias assinaturas tenha essa mensagem recebida por vários aplicativos.

O que é uma entidade particionada?

Uma fila ou tópico convencional é manipulado por um único agente de mensagens e armazenado em um armazenamento de mensagens. Uma fila ou tópico particionado é manipulado por vários agentes de mensagens e armazenado em vários armazenamentos de mensagens. Esse recurso significa que a taxa de transferência geral de uma fila ou tópico particionado não é mais limitada pelo desempenho de um único agente de mensagens ou armazenamento de mensagens. Além disso, uma interrupção temporária de um armazenamento de mensagens não torna uma fila particionada ou um tópico indisponível.

O pedido não é garantido ao usar entidades particionadas. No caso de uma partição não estar disponível, você ainda pode enviar e receber mensagens das outras partições.

Onde o Barramento de Serviço do Azure armazena dados?

A camada padrão do Barramento de Serviço do Azure utiliza o Banco de Dados SQL do Azure para sua camada de armazenamento de back-end. Para todas as regiões, exceto Brasil, Sul e Sudeste Asiático, o backup do banco de dados é hospedado em uma região diferente (geralmente a região emparelhada do Azure). Para as regiões Sul do Brasil e Sudeste Asiático, os backups de banco de dados são armazenados na mesma região para acomodar os requisitos de residência de dados para essas regiões.

A camada premium do Barramento de Serviço do Azure armazena metadados e dados em regiões selecionadas. Quando a recuperação de desastres geográficos é configurada para um namespace premium do Barramento de Serviço do Azure, os metadados são copiados para a região secundária selecionada.

Que portas preciso abrir no firewall?

Você pode usar os seguintes protocolos com o Barramento de Serviço do Azure para enviar e receber mensagens:

  • Protocolo AMQP (Advanced Message Queuing Protocol 1.0)
  • Protocolo de transferência de hipertexto 1.1 com TLS (HTTPS)

Consulte a tabela a seguir para obter as portas TCP de saída que você precisa abrir para usar esses protocolos para se comunicar com o Barramento de Serviço do Azure:

Protocolo Portas Detalhes
AMQP 5671, 5672 AMQP com TLS. Consulte o guia de protocolo AMQP
HTTPS 443 Esta porta é usada para a API HTTP/REST e para AMQP-over-WebSockets

A porta HTTPS geralmente é necessária para comunicação de saída também quando o AMQP é usado pela porta 5671, porque várias operações de gerenciamento executadas pelos SDKs do cliente e a aquisição de tokens do Microsoft Entra ID (quando usado) são executadas por HTTPS.

Os SDKs oficiais do Azure geralmente usam o protocolo AMQP para enviar e receber mensagens do Service Bus.

A opção de protocolo AMQP-over-WebSockets é executada pela porta TCP 443 tal como a API HTTP/REST, mas é funcionalmente idêntica ao AMQP simples. Esta opção tem maior latência de conexão inicial devido a viagens de ida e volta de handshake extra e um pouco mais de sobrecarga como compensação para compartilhar a porta HTTPS. Se este modo estiver selecionado, a porta TCP 443 é suficiente para comunicação. As opções a seguir permitem selecionar o modo AMQP WebSockets.

Linguagem Opção
.NET (Azure.Messaging.ServiceBus) Crie ServiceBusClient usando um construtor que usa ServiceBusClientOptions como parâmetro. Defina ServiceBusClientOptions.TransportType como ServiceBusTransportType.AmqpWebSockets
.NET (Microsoft.Azure.ServiceBus) Ao criar objetos cliente, use construtores que usam TransportType, ServiceBusConnection ou ServiceBusConnectionStringBuilder como parâmetros.

Para a construção que usa transportType como parâmetro, defina o parâmetro como TransportType.AmqpWebSockets.

Para o construtor que usa ServiceBusConnection como parâmetro, defina o ServiceBusConnection.TransportType como TransportType.AmqpWebSockets.

Se você usar ServiceBusConnectionStringBuilder, use construtores que lhe dão uma opção para especificar o transportType.

Java (com.azure.messaging.servicebus) Ao criar clientes, defina ServiceBusClientBuilder.transportType como AmqpTransportType.AMQP.AMQP_WEB_SOCKETS
Java (com.microsoft.azure.servicebus) Ao criar clientes, defina transportType em com.microsoft.azure.servicebus.ClientSettings como com.microsoft.azure.servicebus.primitives.TransportType.AMQP_WEB_SOCKETS
JavaScript Ao criar objetos de cliente do Service Bus, use a webSocketOptions propriedade em ServiceBusClientOptions.
Python Ao criar clientes do Service Bus, defina ServiceBusClient.transport_type como TransportType.AmqpOverWebSocket

Em 30 de setembro de 2026, desativaremos as bibliotecas do SDK do Barramento de Serviço do Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, que não estão em conformidade com as diretrizes do SDK do Azure. Também encerraremos o suporte ao protocolo SBMP, para que você não possa mais usar esse protocolo após 30 de setembro de 2026. Migre para as bibliotecas mais recentes do SDK do Azure, que oferecem atualizações de segurança críticas e recursos aprimorados, antes dessa data.

Embora as bibliotecas mais antigas ainda possam ser usadas após 30 de setembro de 2026, elas não receberão mais suporte e atualizações oficiais da Microsoft. Para obter mais informações, consulte o anúncio de aposentadoria de suporte.

O Barramento de Serviço do Azure dá suporte ao Java Message Service (JMS)?

Que endereços IP preciso adicionar à lista de permissões?

Para encontrar os endereços IP certos para adicionar à lista de permissões para suas conexões, siga estas etapas:

  1. Execute o seguinte comando a partir de uma linha de comandos:

    nslookup <YourNamespaceName>.servicebus.windows.net
    
  2. Anote o endereço IP retornado em Non-authoritative answer.

Se você usar a redundância de zona para seu namespace, precisará executar algumas etapas adicionais:

  1. Primeiro, você executa nslookup no namespace.

    nslookup <yournamespace>.servicebus.windows.net
    
  2. Anote o nome na seção de resposta não autorizada, que está em um dos seguintes formatos:

    <name>-s1.cloudapp.net
    <name>-s2.cloudapp.net
    <name>-s3.cloudapp.net
    
  3. Execute nslookup para cada um com os sufixos s1, s2 e s3 para obter os endereços IP de todas as três instâncias em execução em três zonas de disponibilidade,

    Nota

    O endereço IP retornado pelo nslookup comando não é um endereço IP estático. Ele permanece constante até que a implantação subjacente seja excluída ou movida para um cluster diferente, no entanto, o uso de endereços IN não é recomendado ou suportado, e você precisará acompanhar as alterações nos endereços IP.

Onde posso encontrar o endereço IP do cliente que envia/recebe mensagens de/para um namespace?

Não registramos os endereços IP de clientes que enviam ou recebem mensagens de/para seu namespace. Regenere chaves para que todos os clientes existentes não consigam autenticar e revisar as configurações de controle de acesso baseado em função do Azure (Azure RBAC) para garantir que apenas usuários ou aplicativos permitidos tenham acesso ao namespace.

Se você estiver usando um namespace premium , use filtragem de IP, pontos de extremidade de serviço de rede virtual e pontos de extremidade privados para limitar o acesso ao namespace.

Melhores práticas

Quais são algumas práticas recomendadas do Barramento de Serviço do Azure?

Consulte Práticas recomendadas para melhorias de desempenho usando o Service Bus – este artigo descreve como otimizar o desempenho ao trocar mensagens.

O que devo saber antes de criar entidades?

As seguintes propriedades de uma fila e de um tópico são imutáveis. Considere essa limitação ao criar suas entidades, pois essas propriedades não podem ser modificadas sem criar uma nova entidade de substituição.

  • Criação de partições
  • Sessões
  • Deteção de duplicados
  • Entidade expressa

Preços

Esta seção responde a algumas perguntas frequentes sobre a estrutura de preços do Service Bus.

O artigo de preços e faturamento do Service Bus explica os medidores de faturamento no Service Bus. Para obter informações específicas sobre as opções de preços do Service Bus, consulte Detalhes de preços do Service Bus.

Também pode visitar as Perguntas frequentes de Suporte do Azure para obter informações gerais sobre preços do Azure.

Como você cobra pelo Service Bus?

Para obter informações completas sobre os preços do Service Bus, consulte Detalhes de preços do Service Bus. Além dos preços indicados, você será cobrado por transferências de dados associadas para saída fora do data center no qual seu aplicativo está provisionado.

Que uso do Service Bus está sujeito à transferência de dados? O que não é?

Qualquer transferência de dados dentro de uma determinada região do Azure é fornecida gratuitamente, bem como qualquer transferência de dados de entrada. A transferência de dados para fora de uma região está sujeita a taxas de saída, que podem ser encontradas aqui.

O Service Bus cobra pelo armazenamento?

N.º O Service Bus não cobra pelo armazenamento. No entanto, há uma cota que limita a quantidade máxima de dados que podem ser persistidos por fila/tópico. Consulte as próximas Perguntas frequentes.

Tenho um namespace padrão do Service Bus. Por que motivo vejo as cobranças no grupo de recursos '$system'?

O Barramento de Serviço do Azure atualizou recentemente os componentes de cobrança. Devido a essa alteração, se você tiver um namespace do Service Bus Standard, poderá ver itens de linha para o recurso /subscriptions/<azure_subscription_id>/resourceGroups/$system/providers/Microsoft.ServiceBus/namespaces/$system em grupo $systemde recursos .

Essas cobranças representam a cobrança básica por assinatura do Azure que provisionou um namespace do Service Bus Standard.

É importante notar que essas cobranças não são novas, ou seja, existiam no modelo de faturamento anterior também. A única mudança é que eles agora estão listados em $system. Isso é feito devido a restrições no novo sistema de cobrança que agrupa cobranças de nível de assinatura, não vinculadas a um recurso específico, sob o ID do $system recurso.

Quotas

Para obter uma lista de limites e cotas do Service Bus, consulte a visão geral das cotas do Service Bus.

Como lidar com mensagens de tamanho > 1 MB?

Os serviços de mensagens do Service Bus (filas e tópicos/assinaturas) permitem que o aplicativo envie mensagens de tamanho de até 256 KB (camada padrão) ou 100 MB (camada premium). Se você estiver lidando com mensagens de tamanho maior do que o permitido, use o padrão de verificação de declaração descrito nesta postagem do blog.

Resolução de Problemas

Por que não consigo criar um namespace depois de excluí-lo de outra assinatura?

Quando você excluir um namespace de uma assinatura, aguarde 4 horas antes de recriá-lo com o mesmo nome em outra assinatura. Caso contrário, poderá receber a seguinte mensagem de erro: Namespace already exists.

Quais são algumas das exceções geradas pelas APIs do Barramento de Serviço do Azure e suas ações sugeridas?

Para obter uma lista de possíveis exceções do Service Bus, consulte Visão geral de exceções.

O que é uma Assinatura de Acesso Compartilhado e quais idiomas suportam a geração de uma assinatura?

As Assinaturas de Acesso Compartilhado são um mecanismo de autenticação baseado em hashes ou URIs seguros SHA-256. Para obter informações sobre como gerar suas próprias assinaturas em Node.js, PHP, Java, Python e C#, consulte o artigo Assinaturas de acesso compartilhado.

Gerenciamento de assinatura e namespace

Como faço para migrar um namespace para outra assinatura do Azure?

Você pode mover um namespace de uma assinatura do Azure para outra, usando o portal do Azure ou os comandos do PowerShell. Para executar a operação, o namespace já deve estar ativo. O usuário que executa os comandos deve ser um administrador nas assinaturas de origem e de destino.

Portal

Para usar o portal do Azure para migrar namespaces do Service Bus para outra assinatura, siga as instruções aqui.

PowerShell

A sequência de comandos do PowerShell a seguir move um namespace de uma assinatura do Azure para outra. Para executar essa operação, o namespace já deve estar ativo e o usuário que executa os comandos do PowerShell deve ser um administrador nas assinaturas de origem e de destino.

# Create a new resource group in target subscription
Select-AzSubscription -SubscriptionId 'ffffffff-ffff-ffff-ffff-ffffffffffff'
New-AzResourceGroup -Name 'targetRG' -Location 'East US'

# Move namespace from source subscription to target subscription
Select-AzSubscription -SubscriptionId 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
$res = Find-AzResource -ResourceNameContains mynamespace -ResourceType 'Microsoft.ServiceBus/namespaces'
Move-AzResource -DestinationResourceGroupName 'targetRG' -DestinationSubscriptionId 'ffffffff-ffff-ffff-ffff-ffffffffffff' -ResourceId $res.ResourceId

É possível desativar o TLS 1.0 ou 1.1 em namespaces do Service Bus?

Sim, você pode desabilitar o TLS 1.0 ou 1.1 em namespaces do Service Bus definindo a versão mínima do TLS. Para obter mais informações, consulte Impor uma versão mínima necessária do TLS (Transport Layer Security) para solicitações a um namespace do Service Bus.

Próximos passos

Para saber mais sobre o Service Bus, consulte os seguintes artigos: