Padrões de mensagens
A natureza distribuída das aplicações da cloud requer uma infraestrutura de mensagens que liga os componentes e serviços, idealmente de forma livremente ligada para maximizar a escalabilidade. As mensagens assíncronas são amplamente utilizadas e oferecem muitas vantagens, mas também colocam desafios, como a ordenação de mensagens, a gestão de mensagens não processáveis, a idempotência e muito mais.
Padrão | Resumo |
---|---|
Pedido-resposta assíncrono | Dissociar o processamento de back-end de um host front-end onde o processamento de back-end tem de ser assíncrono mas o front-end continua a necessitar de uma resposta clara. |
Verificação de Afirmações | Divida uma mensagem grande numa verificação de afirmações e num payload para evitar sobrecarregar um barramento de mensagens. |
Coreografia | Faça 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. |
Consumidores Concorrentes | Permita que vários consumidores em simultâneo processem mensagens recebidas no mesmo canal de mensagens. |
Pipes e Filtros | Divida uma tarefa que realiza processamento complexo numa série de elementos separados que podem ser reutilizados. |
Fila de Prioridade | Defina prioridades dos pedidos enviados para os serviços, de modo a que os pedidos com uma prioridade mais alta sejam recebidos e processados mais rapidamente do que aqueles com uma prioridade mais baixa. |
Editor-Assinante | Permita que uma aplicação anuncie os eventos para vários consumidores interessados de forma assíncrona, sem acoplar os remetentes aos destinatários. |
Redistribuição de Carga Baseada na Fila | Utilize uma fila que age como uma memória intermédia entre uma tarefa e um serviço que este invoca para cargas pesadas intermitentes. |
Saga | Gerencie a consistência de dados em microsserviços em cenários de transações distribuídas. Uma saga é uma sequência de transações que atualiza cada serviço e publica uma mensagem ou evento para acionar a próxima etapa da transação. |
Supervisor de Agente do Scheduler | Coordene um conjunto de ações entre um conjunto distribuído de serviços e outros recursos remotos. |
Transporte sequencial | Processe um conjunto de mensagens relacionadas numa ordem definida sem bloquear o processamento de outros grupos de mensagens. |