O que é o Barramento de Serviço do Azure?What is Azure Service Bus?

O Barramento de Serviço do Microsoft Azure é um agente de mensagens de integração empresarial totalmente gerenciado.Microsoft Azure Service Bus is a fully managed enterprise integration message broker. O Barramento de Serviço é mais comumente usado para desacoplar aplicativos e serviços uns dos outros e é uma plataforma confiável e segura para dados assíncronos e transferência de estado.Service Bus is most commonly used to decouple applications and services from each other, and is a reliable and secure platform for asynchronous data and state transfer. Os dados são transferidos entre diferentes aplicativos e serviços usando mensagens.Data is transferred between different applications and services using messages. Uma mensagem é em formato binário que pode conter JSON, XML ou apenas texto.A message is in binary format, which can contain JSON, XML, or just text.

Alguns cenários de sistema de mensagens comuns são:Some common messaging scenarios are:

  • Mensagens: transferir dados comerciais, como vendas ou pedidos de compra, diários ou movimentos de estoque.Messaging: transfer business data, such as sales or purchase orders, journals, or inventory movements.
  • Desacoplar aplicativos: melhorar a confiabilidade e a escalabilidade de aplicativos e serviços (cliente e serviço não precisam estar online ao mesmo tempo).Decouple applications: improve reliability and scalability of applications and services (client and service do not have to be online at the same time).
  • Tópicos e assinaturas: habilitar 1:n relacionamentos entre publicadores e assinantes.Topics and subscriptions: enable 1:n relationships between publishers and subscribers.
  • Sessões de mensagens: implementar fluxos de trabalho que exijam ordenação de mensagens ou adiamento de mensagens.Message sessions: implement workflows that require message ordering or message deferral.

NamespacesNamespaces

Um namespace é um contêiner de escopo para todos os componentes de mensagem.A namespace is a scoping container for all messaging components. Várias filas e tópicos podem residir em um único namespace e os namespaces geralmente servem como contêineres de aplicativos.Multiple queues and topics can reside within a single namespace, and namespaces often serve as application containers.

FilasQueues

As mensagens são enviadas e recebidas a partir de filas.Messages are sent to and received from queues. As filas permitem que você armazene mensagens até que o aplicativo de recebimento esteja disponível para recebê-las e processá-las.Queues enable you to store messages until the receiving application is available to receive and process them.

Fila

As mensagens em filas são ordenadas e recebem carimbo de data/hora na chegada.Messages in queues are ordered and timestamped on arrival. Quando aceita, a mensagem é mantida protegida em armazenamento com redundância.Once accepted, the message is held safely in redundant storage. As mensagens são entregues em modo pull, que entrega mensagens mediante solicitação.Messages are delivered in pull mode, which delivers messages on request.

TópicosTopics

Também é possível usar tópicos para enviar e receber mensagens.You can also use topics to send and receive messages. Enquanto uma fila é frequentemente usada para comunicação ponto a ponto, os tópicos são úteis em cenários de publicação/assinatura.While a queue is often used for point-to-point communication, topics are useful in publish/subscribe scenarios.

Tópico

Os tópicos podem ter várias assinaturas independentes.Topics can have multiple, independent subscriptions. Um assinante de um tópico pode receber uma cópia de cada mensagem enviada para esse tópico.A subscriber to a topic can receive a copy of each message sent to that topic. As assinaturas são entidades nomeadas criadas de forma durável, mas podem, opcionalmente, expirar ou excluir automaticamente.Subscriptions are named entities, which are durably created but can optionally expire or auto-delete.

Em alguns cenários, talvez você não queira que assinaturas individuais recebam todas as mensagens enviadas para um tópico.In some scenarios, you may not want individual subscriptions to receive all messages sent to a topic. Nesse caso, é possível usar regras e filtros para definir condições que disparam ações opcionais, filtram mensagens especificadas e definem ou modificam propriedades de mensagens.If so, you can use rules and filters to define conditions that trigger optional actions, filter specified messages, and set or modify message properties.

Recursos avançadosAdvanced features

O Barramento de Serviço também possui recursos avançados que permitem resolver problemas de mensagens mais complexos.Service Bus also has advanced features that enable you to solve more complex messaging problems. As seções a seguir descrevem esses principais recursos:The following sections describe these key features:

Sessões de mensagemMessage sessions

Para realizar uma garantia PEPS (primeiro a entrar, primeiro a sair) no Barramento de Serviço, use as sessões.To realize a first-in, first-out (FIFO) guarantee in Service Bus, use sessions. As Sessões de mensagens permitem manipulação ordenada e conjunta de sequências não associadas de mensagens relacionadas.Message sessions enable joint and ordered handling of unbounded sequences of related messages.

Encaminhamento automáticoAuto-forwarding

O recurso encaminhamento automático permite encadear uma fila ou assinatura a outra fila ou outro tópico que faça parte do mesmo namespace.The auto-forwarding feature enables you to chain a queue or subscription to another queue or topic that is part of the same namespace. Quando o encaminhamento automático está habilitado, o Barramento de Serviço remove automaticamente as mensagens colocadas na primeira fila ou assinatura (origem) e as coloca na segunda fila ou no segundo tópico (destino).When auto-forwarding is enabled, Service Bus automatically removes messages that are placed in the first queue or subscription (source) and puts them in the second queue or topic (destination).

Mensagens mortasDead-lettering

O Barramento de Serviço dá suporte a uma DLQ (fila de mensagens mortas) para manter mensagens que não podem ser entregues a nenhum receptor ou mensagens que não podem ser processadas.Service Bus supports a dead-letter queue (DLQ) to hold messages that cannot be delivered to any receiver, or messages that cannot be processed. Portanto, é possível remover mensagens da DLQ e inspecioná-las.You can then remove messages from the DLQ and inspect them.

Entrega agendadaScheduled delivery

É possível enviar mensagens a uma fila ou tópico para processamento atrasado, por exemplo, para agendar a disponibilidade de um trabalho para processamento por um sistema em um determinado momento.You can submit messages to a queue or topic for delayed processing; for example, to schedule a job to become available for processing by a system at a certain time.

Adiamento de mensagensMessage deferral

Quando um cliente de assinatura ou fila recebe uma mensagem que está disposto a processar, mas cujo processamento não é possível devido a circunstâncias especiais no aplicativo, a entidade tem a opção de adiar a recuperação da mensagem para um ponto posterior.When a queue or subscription client receives a message that it is willing to process, but for which processing is not currently possible due to special circumstances within the application, the entity has the option to defer retrieval of the message to a later point. A mensagem permanece na fila ou assinatura, mas é reservada.The message remains in the queue or subscription, but it is set aside.

Envio em loteBatching

O Envio em lote do lado do cliente permite que um cliente de tópico ou fila adie o envio de uma mensagem por um determinado período de tempo.Client-side batching enables a queue or topic client to delay sending a message for a certain period of time. Se o cliente enviar mensagens adicionais durante esse período, ele transmitirá as mensagens em um único lote.If the client sends additional messages during this time period, it transmits the messages in a single batch.

TransaçõesTransactions

Uma transação agrupa duas ou mais operações em um escopo de execução.A transaction groups two or more operations together into an execution scope. O Barramento de Serviço dá suporte a operações de agrupamento em uma única entidade de mensagens (fila, tópico e assinatura) no escopo de uma transação.Service Bus supports grouping operations against a single messaging entity (queue, topic, subscription) within the scope of a transaction.

Filtragem e açõesFiltering and actions

Os assinantes podem definir quais mensagens desejam receber de um tópico.Subscribers can define which messages they want to receive from a topic. Essas mensagens são especificadas na forma de uma ou mais regras de assinatura nomeadas.These messages are specified in the form of one or more named subscription rules. Para cada condição de regra com correspondência, a assinatura produz uma cópia da mensagem, que pode ser anotada de forma diferente para cada regra com correspondência.For each matching rule condition, the subscription produces a copy of the message, which may be differently annotated for each matching rule.

Exclusão automática em tempo ociosoAuto-delete on idle

A exclusão automática em tempo ocioso permite que você especifique um intervalo de tempo ocioso, após o qual a fila será excluída automaticamente.Auto-delete on idle enables you to specify an idle interval after which the queue is automatically deleted. A duração mínima é de 5 minutos.The minimum duration is 5 minutes.

Detecção de duplicidadeDuplicate detection

Se ocorrer um erro em que o cliente tenha alguma dúvida sobre o resultado de uma operação de envio, a detecção de duplicidades eliminará a dúvida dessas situações, permitindo que o remetente envie novamente a mesma mensagem e que a fila ou o tópico descarte as cópias duplicadas.If an error occurs that causes the client to have any doubt about the outcome of a send operation, duplicate detection takes the doubt out of these situations by enabling the sender to re-send the same message, and the queue or topic discards any duplicate copies.

Identidades gerenciadas, SAS e RBAC para recursos do AzureSAS, RBAC, and Managed identities for Azure resources

O Barramento de Serviço dá suporte a protocolos de segurança, como Assinaturas de Acesso Compartilhado (SAS), Controle de Acesso Baseado em Função (RBAC) e Identidades Gerenciadas para recursos do Azure.Service Bus supports security protocols such as Shared Access Signatures (SAS), Role Based Access Control (RBAC) and Managed identities for Azure resources.

Recuperação de desastre geográficoGeo-disaster recovery

Quando os datacenters ou regiões do Azure passam por um tempo de inatividade, a recuperação de desastre geográfico permite que o processamento de dados continue operando em um datacenter ou região diferente.When Azure regions or datacenters experience downtime, Geo-disaster recovery enables data processing to continue operating in a different region or datacenter.

SegurançaSecurity

O Barramento de Serviço dá suporte aos protocolos padrão AMQP 1.0 e HTTP/REST.Service Bus supports standard AMQP 1.0 and HTTP/REST protocols.

Bibliotecas de clienteClient libraries

O Barramento de Serviço dá suporte a bibliotecas de clientes para .NET, Java, JMS.Service Bus supports client libraries for .NET, Java, JMS.

IntegraçãoIntegration

O Barramento de Serviço integra-se totalmente aos serviços do Azure a seguir:Service Bus fully integrates with the following Azure services:

Próximas etapasNext steps

Para começar a usar o sistema de mensagens do Barramento de Serviço, consulte os artigos a seguir:To get started using Service Bus messaging, see the following articles: