Padrões de mensagensMessaging patterns

A natureza distribuída dos aplicativos de nuvem exige uma infraestrutura de mensagens que conecta os componentes e serviços, idealmente de uma maneira flexível para maximizar a escalabilidade.The distributed nature of cloud applications requires a messaging infrastructure that connects the components and services, ideally in a loosely coupled manner in order to maximize scalability. O sistema de mensagens assíncronas é amplamente usado e fornece muitos benefícios, mas também traz desafios, como a ordenação de mensagens, o gerenciamento de mensagens suspeitas, a idempotência e muito mais.Asynchronous messaging is widely used, and provides many benefits, but also brings challenges such as the ordering of messages, poison message management, idempotency, and more.

PadrãoPattern ResumoSummary
Solicitação/resposta assíncronaAsynchronous Request-Reply Desvincule o processamento de back-end de um host de front-end: quando o processamento de back-end precisa ser assíncrono, mas o front-end ainda precisa de uma resposta clara.Decouple backend processing from a frontend host, where backend processing needs to be asynchronous, but the frontend still needs a clear response.
Verificação de declaraçãoClaim Check Divida uma mensagem grande em uma verificação de declaração e uma carga para evitar sobrecarregar um barramento de mensagem.Split a large message into a claim check and a payload to avoid overwhelming a message bus.
CoreografiaChoreography Fazer com que cada componente do sistema participe do processo de tomada de decisão sobre o fluxo de trabalho de uma transação comercial, em vez de depender de um ponto central de controle.Have each component of the system participate in the decision-making process about the workflow of a business transaction, instead of relying on a central point of control.
Consumidores ConcorrentesCompeting Consumers Habilite vários consumidores simultâneos para processar as mensagens recebidas no mesmo canal de mensagens.Enable multiple concurrent consumers to process messages received on the same messaging channel.
Pipes e FiltrosPipes and Filters Dividir uma tarefa que executa processamento complexo em uma série de elementos separados que podem ser reutilizados.Break down a task that performs complex processing into a series of separate elements that can be reused.
Fila de PrioridadePriority Queue Priorize as solicitações enviadas a serviços para que as solicitações com uma prioridade mais alta sejam recebidas e processadas mais rapidamente do que aquelas com uma prioridade mais baixa.Prioritize requests sent to services so that requests with a higher priority are received and processed more quickly than those with a lower priority.
Assinante do EditorPublisher-Subscriber Permite a um aplicativo anunciar eventos para vários consumidores de seu interesse assincronamente, sem acoplar os remetentes aos destinatários.Enable an application to announce events to multiple interested consumers asynchronously, without coupling the senders to the receivers.
Nivelamento de Carga Baseado em FilaQueue-Based Load Leveling Use uma fila que funcione como um buffer entre uma tarefa e um serviço que ela invoca para simplificar cargas pesadas intermitentes.Use a queue that acts as a buffer between a task and a service that it invokes in order to smooth intermittent heavy loads.
Supervisor de Agente do AgendadorScheduler Agent Supervisor Coordene um conjunto de ações em um conjunto distribuído de serviços e outros recursos remotos.Coordinate a set of actions across a distributed set of services and other remote resources.
Comboio SequencialSequential Convoy Processe um conjunto de mensagens relacionadas em uma ordem definida, sem bloquear o processamento de outros grupos de mensagens.Process a set of related messages in a defined order, without blocking processing of other groups of messages.