VENDAS: 1-800-867-1389

Práticas recomendadas para aproveitar a API de mensagens orientadas do Barramento de Serviço do Azure

Atualizado: março de 2014

Autor: Valery Mizonov

Colaboradores: Seth Manheim, Paolo Salvatori, James Podgorski, Eric Lam, Jayu Katti

Este artigo oferece diretrizes práticas para desenvolvedores que trabalham com a API de mensagens orientadas gerenciada pelo .NET no Windows Azure Service Bus. As recomendações fornecidas neste artigo vêm diretamente de projetos de clientes recentes. Ao criar soluções reais com o Service Bus, nós aprendemos sobre algumas das principais práticas recomendadas e segredos pouco conhecidos que ajudam a aumentar a confiabilidade e melhorar o desempenho das soluções que usam os novos recursos de mensagens orientadas no Service Bus. Este artigo pretende compartilhar essas lições com a comunidade de desenvolvedores.

Mensagens retransmitidas vs. orientadas

O Microsoft Azure Service Bus oferece duas soluções de mensagens abrangentes. A primeira solução está disponível com um serviço de "retransmissão" centralizado com alto balanceamento de carga executado na nuvem que oferece suporte a uma série de protocolos de transporte e padrões de serviços Web diferentes, inclusive SOAP, WS-* e REST. O serviço de retransmissão oferece suporte a mensagens unidirecionais diretas, mensagens de solicitação/resposta e mensagens ponto a ponto. O padrão associado a esse tipo de solução de mensagens é chamado de mensagens retransmitidas. No padrão de mensagens retransmitidas, um serviço local ou baseado em nuvem se conecta ao serviço de retransmissão por meio de uma porta de saída e cria um soquete bidirecional para comunicação vinculada a um endereço de reunião em particular. O cliente não precisa saber onde o serviço reside, e o serviço local não precisa de nenhuma porta de entrada aberta no firewall. As mensagens retransmitidas fornecem muitos benefícios, mas requerem que o servidor e o cliente estejam ambos online ao mesmo tempo para enviar e receber mensagens. As mensagens retransmitidas estão disponíveis desde a versão inicial do Service Bus.

A segunda solução de mensagens ativa recursos de mensagens orientadas. O esquema de mensagens orientadas também pode ser considerado como mensagens assíncronas ou "temporariamente desacopladas". Os produtores (remetentes) e os consumidores (destinatários) não precisam estar online ao mesmo tempo. A infraestrutura de mensagens armazena de forma confiável as mensagens até que a parte consumidora esteja pronta para recebê-las. Isso permite que os componentes do aplicativo distribuído sejam desconectados voluntariamente, por exemplo, para manutenção, ou devido a uma falha do componente, sem afetar o sistema inteiro. Além disso, o aplicativo de recebimento poderá precisar ficar online somente durante determinadas horas do dia, como um sistema de gerenciamento de estoque que só precisa ser executado no final de um dia útil.

Os principais componentes da infraestrutura de mensagens orientadas do Service Bus são filas, tópicos e assinaturas. Esses componentes habilitam novos cenários de mensagens assíncronas, como o desacoplamento temporal, publicação/assinatura, nivelamento de carga e balanceamento de carga. Para obter mais informações sobre esses cenários, consulte a seção Recursos adicionais:

Visão geral da API de mensagens orientadas

Durante a apresentação das diretrizes, você verá muitas referências a vários componentes, classes e tipos disponíveis na API de mensagens orientadas gerenciadas pelo .NET. Para fins de contextualização, listamos algumas das principais APIs que fornecem e dão suporte ao recurso de mensagens orientadas no Service Bus.

As classes a seguir são os membros da API usados com mais frequência nos namespaces Microsoft.ServiceBus e Microsoft.ServiceBus.Messaging, envolvidos frequentemente quando você está desenvolvendo uma solução de mensagens orientadas:

 

Nome da classe

Descrição

BrokeredMessage

Representa a unidade de comunicação entre clientes do Service Bus. As instâncias serializadas dos objetos BrokeredMessage são transmitidas eletronicamente quando os clientes de mensagens se comunicam por meio de filas e tópicos.

QueueClient

Representa um objeto de mensagem que permite enviar e receber mensagens de uma fila do Service Bus.

QueueDescription

Representa um objeto de metadados que descreve uma fila do Service Bus que inclui o caminho da fila, configurações de comportamento (como duração do bloqueio, TTL padrão, detecção de duplicidades) e pontos de dados informativos (como o tamanho e o comprimento atuais da fila).

TopicClient

Representa um objeto de mensagem que permite enviar mensagens a um tópico do Service Bus.

TopicDescription

Representa um objeto de metadados que descreve um tópico do Service Bus que inclui o caminho do tópico, configurações de comportamento (como detecção de duplicidades) e pontos de dados informativos (como o tamanho atual e o comprimento máximo do tópico).

SubscriptionClient

Representa um objeto de mensagem que permite receber mensagens de uma assinatura do Service Bus.

SubscriptionDescription

Representa um objeto de metadados que descreve uma assinatura do Service Bus que inclui o nome da assinatura, o caminho do tópico que não foi pago, configurações de comportamento (como suporte a sessão, TTL padrão, duração do bloqueio) e pontos de dados informativos (como a contagem de mensagens atual).

NamespaceManager

Representa um objeto de gerenciamento responsável por operações em tempo de execução com entidades de mensagens (filas, tópicos, assinaturas, regras) do Service Bus, incluindo criação, recuperação, exclusão e afirmação da existência.

MessagingFactory

Representa um objeto de fábrica responsável por acompanhar, gerenciar e criar uma instância do ciclo de vida de clientes da entidade de mensagens, como o TopicClient, o QueueClient e o SubscriptionClient.

MessageReceiver

Representa um objeto de mensagens abstrato que oferece suporte a funcionalidades avançadas de mensagens, com um foco especial nas operações de recebimento de mensagens.

MessageSender

Representa um objeto de mensagens abstrato que oferece suporte a funcionalidades avançadas de mensagens, com um foco especial nas operações de envio de mensagens.

MessageSession

Representa uma sessão da mensagem que permite o agrupamento de mensagens relacionadas para processamento em uma única transação.

Filter

Representa um objeto de metadados abstrato que consiste em uma expressão de filtro e uma ação associada que é executada no mecanismo de avaliação de assinaturas do Service Bus. A classe Filter atende à finalidade de uma classe base para TrueFilter, FalseFilter, SqlFilter e CorrelationFilter, que representam as implementações de um objeto de metadados para um determinado tipo de filtro.

TokenProvider

Representa um objeto de fábrica que fornece acesso a diferentes tipos de provedores de tokens de segurança responsáveis pela aquisição de tokens SAML, Segredo Compartilhado e Web Simples.

É recomendável que você se familiarize com esses artefatos da API para obter uma vantagem inicial na criação de sua primeira solução de mensagens orientadas com o Service Bus. Observe que essa não é uma lista completa de todas as classes encontradas na API de mensagens orientadas. Para obter um cenário completo de todos os membros da API, consulte a documentação do MSDN.

Práticas recomendadas na API de mensagens orientadas

Os tópicos desta seção compartilham recomendações específicas que foram derivadas da experiência prática com a API de mensagens orientadas gerenciadas pelo .NET. O objetivo dessas recomendações é incentivar os desenvolvedores a aplicar as técnicas e os padrões discutidos nas seções a seguir para poder fornecer soluções robustas de mensagens. Esta seção contém os seguintes tópicos:

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários

Contribuições da comunidade

Mostrar:
© 2014 Microsoft