Barramento de Serviço do Azure – Perguntas frequentes

Este artigo discute algumas perguntas frequentes sobre o Barramento de Serviço do Microsoft Azure. Você 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 Barramento de Serviço do Azure?

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

O que é um namespace do Barramento de Serviço?

Um namespace fornece um contêiner de escopo para endereçar recursos do barramento de serviço dentro de seu aplicativo. A criação de um namespace é necessária para a utilização do Barramento de Serviço e é uma das primeiras etapas da introdução.

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

A Fila do Barramento de Serviço é 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 umas com as outras. A fila é semelhante a um centro de distribuição em que vários produtos (mensagens) são recebidos e então enviados desse local.

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

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

O que é uma entidade particionada?

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

A ordenação não é garantida ao usar entidades particionadas. Se uma partição não estiver disponível, você poderá enviar e receber mensagens de outras partições.

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

A camada standard do Barramento de Serviço do Azure usa o Banco de Dados SQL do Azure para a camada de armazenamento de back-end. Para todas as regiões, exceto pelo Sul do Brasil e o Sudeste da Ásia, o backup de banco de dados é hospedado em uma região diferente (geralmente, a região do Azure emparelhada). Apenas nas regiões Sul do Brasil e Sudeste da Ásia os backups de banco de dados são armazenados na mesma região a fim de acomodar os requisitos de residência de dados dessas regiões.

A camada Premium do Barramento de Serviço do Azure armazena metadados e dados nas regiões que você seleciona. Quando a recuperação de desastre geográfico está configurada para um namespace Premium do Barramento de Serviço do Azure, os metadados são copiados para a região secundária selecionada.

Quais portas preciso abrir no firewall?

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

  • Advanced Message Queuing Protocol 1.0 (AMQP)
  • Protocolo HTTP 1.1 com TLS (HTTPS)

Confira na seguinte tabela 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 Guia do protocolo AMQP
HTTPS 443 Esta porta é usada para a API REST/HTTP e para AMQP em WebSockets

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

Geralmente, os SDKs oficiais do Azure usam o protocolo AMQP para enviar e receber eventos do Barramento de Serviço.

A opção de protocolo AMQP-over-WebSockets é executada na porta TCP 443 da mesma forma que o HTTP/API REST, mas sua funcionalidade é idêntica à do AMQP simples. Essa opção tem uma latência de conexão inicial maior devido às viagens de ida e volta extras de handshake e um pouco mais de sobrecarga como compensação para o compartilhamento da porta HTTPS. Se esse modo estiver selecionado, a porta TCP 443 será suficiente para a comunicação. As opções a seguir permitem selecionar o modo WebSockets do AMQP.

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

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

Para o construtor que usa ServiceBusConnection como um parâmetro, defina 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 Barramento de Serviço, use a propriedade webSocketOptions em ServiceBusClientOptions.
Python Ao criar clientes do Barramento de Serviço, 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, portanto, ele não poderá mais ser usado após 30 de setembro de 2026. Antes dessa data, migre para as bibliotecas mais recentes do SDK do Azure, que oferecem atualizações de segurança críticas e funcionalidades aprimoradas.

Embora as bibliotecas mais antigas ainda poderão 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, confira o anúncio de desativação do suporte.

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

Quais endereços IP preciso adicionar à lista de permitidos?

Para localizar os endereços IP corretos a serem adicionados à lista de permitidos para suas conexões, siga estas etapas:

  1. Execute o seguinte comando de um prompt de comando:

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

Se usar a redundância de zona para seu namespace, será necessário executar algumas etapas adicionais:

  1. Primeiro, execute nslookup no namespace.

    nslookup <yournamespace>.servicebus.windows.net
    
  2. Anote o nome na seção resposta não autoritativa, 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 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,

    Observação

    O endereço IP retornado pelo comando nslookup não é um endereço IP estático. No entanto, ele permanece constante até que a implantação subjacente seja excluída ou movida para um cluster diferente.

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

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

Se você está 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.

Práticas recomendadas

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

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

O que devo saber antes de criar entidades?

As propriedades de uma fila e tópico a seguir são imutáveis. Considere essa limitação ao criar suas entidades, uma vez que essas propriedades não podem ser modificadas sem a criação de uma entidade de substituição.

  • Particionamento
  • Sessões
  • Detecção de duplicidade
  • Entidade expressa

Preços

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

O artigo Preços e cobrança do Barramento de Serviço explica os medidores de cobrança no Barramento de Serviço. Para saber mais sobre o preço do Barramento de Serviço, veja Detalhes de preço do Barramento de Serviço.

Você também pode visitar as Perguntas frequentes sobre o suporte do Azure para obter informações gerais sobre preços do Azure.

Como é cobrado o Barramento de Serviço?

Para saber mais sobre o preço do Barramento de Serviço, consulte Detalhes de preço do Barramento de Serviço. Além dos preços mencionados, você é cobrado por transferências de dados associadas para saída fora do data center em que seu aplicativo está provisionado.

Quais usos do barramento de serviço estão sujeitos à transferência de dados? Quais não estão?

Todas as transferências de dados dentro de uma determinada região do Azure são feitas gratuitamente, bem como qualquer transferência de dados recebida. A transferência de dados fora de uma região está sujeita a encargos de saída, que podem ser encontrados aqui.

O Barramento de Serviço cobra pelo armazenamento?

Não. O Barramento de Serviço não cobra pelo armazenamento. No entanto, há uma cota que limita a quantidade máxima de dados que podem persistir por fila/tópico. Consulte as Perguntas Frequentes a seguir.

Tenho um namespace Standard do Barramento de Serviço. Por que vejo os custos no grupo de recursos `$system`?

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

Esses encargos representam o encargo base por assinatura do Azure que provisionou um namespace Standard do Barramento de Serviço.

É importante observar que esses encargos não são novos, ou seja, eles também existiam no modelo de cobrança anterior. A única alteração é que agora eles estão listados em $system. Isso se deve a restrições no novo sistema de cobrança, que agrupa os custos da assinatura, não vinculados a um recurso específico, na ID do recurso $system.

Cotas

Para obter uma lista de cotas e limites do Barramento de Serviço, veja Visão geral sobre cotas do Barramento de Serviço.

Como lidar com mensagens com mais de 1 MB?

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

Solução de problemas

Por que não eu consigo criar um namespace após excluí-lo de outra assinatura?

Quando você exclui um namespace de uma assinatura, aguarde até 4 horas antes de recriá-lo com o mesmo nome em outra assinatura. Caso contrário, você 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 exceções possíveis do Barramento de Serviço, confira Visão geral das exceções.

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

Assinaturas de acesso compartilhado são um mecanismo de autenticação com base em hashes seguros SHA-256 ou URIs. Para saber mais sobre como gerar suas assinaturas no Node.js, PHP, Java, Python e C#, confira o artigo Assinaturas de Acesso Compartilhado.

Gerenciamento de assinaturas e de namespaces

Como posso migrar um namespace para outra assinatura do Azure?

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

Portal

Para usar o portal do Azure para migrar namespaces do Barramento de Serviço para outra assinatura, siga as instruções descritas 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 está executando os comandos do PowerShell deve ser um administrador em 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 desabilitar o TLS 1.0 ou 1.1 em namespaces do Barramento de Serviço?

Sim, você pode desabilitar o TLS 1.0 ou 1.1 em namespaces de Barramento de Serviço definindo a versão mínima do TLS. Para mais informações, consulte Impor uma versão mínima necessária de Segurança da Camada de Transporte (TLS) para solicitações a um namespace do barramento de serviço do Azure.

Próximas etapas

Para saber mais sobre o Barramento de Serviço, consulte os seguintes artigos: