Messaging
Movimente informações entre aplicativos de forma segura e simplificada
Dentro de uma solução computacional, a mensageria tem o papel de comunicar (integrar) sistemas distribuídos ou microsserviços através da troca de mensagens ou eventos que são armazenados em filas (queue).
Integrar sistemas não é uma tarefa simples. Existe a necessidade de se lidar com múltiplas aplicações, executadas em diferentes ambientes, escritas em linguagens diferentes, que nem sempre são baseadas em sistemas open source, com acesso ao código fonte.
Com mensageria, as aplicações criam pequenos pacotes com dados (mensagens), enviados a canais que se responsabilizam por entregar esses pacotes aos sistemas interessados. As mensagens são postadas num canal por sistemas que enviam as mensagens e elas podem ser consumidas por um ou mais sistemas interessados. Com isto é possível reduzir o acoplamento dos sistemas que trocam as mensagens.
Principais benefícios
Melhor performance – As filas de mensagens permitem a comunicação assíncrona, o que significa que os serviços que produzem e consomem mensagens interagem com a fila e não entre si. Assim, um componente no sistema não fica paralisado esperando por outro fluxo de dados de otimização.
Maior confiabilidade – As filas tornam os dados persistentes e reduzem os erros que ocorrem quando partes diferentes do sistema ficam offline. A separação de componentes diferentes em filas de mensagens aumenta a tolerância a falhas. Se alguma parte do sistema se tornar inacessível, ainda será possível continuar a interagir com a fila.
Escalabilidade granular – As filas de mensagens possibilitam ajustar a escala precisamente onde for necessário. Quando as cargas de trabalho atingem picos, várias instâncias do aplicativo podem adicionar solicitações à fila sem riscos de colisão. Os produtores, os consumidores e a própria fila podem aumentar e diminuir de acordo com a demanda.
Dissociação simplificada – As filas de mensagens removem dependências entre componentes e simplificam bastante a codificação de aplicativos dissociados. Os componentes de software não são sobrecarregados pelo código de comunicação e podem ser projetados para executar uma função empresarial diferente.
Dividir aplicativos – Usar as filas de mensagens permite dissociar aplicativos monolíticos. Em vez de desempenhar várias funções em um único executável, vários programas podem trocar informações ao enviar mensagens entre processos, tornando-as mais fáceis de testar, depurar, desenvolver e ajustar a escala.
Migrar para microsserviços – Os padrões de integração a microsserviços baseados em eventos e o sistema de mensagens assíncronas otimizam a escalabilidade e a resiliência. Serviços de filas de mensagens coordenam vários microsserviços, ou atuam como um canal de eventos para processar dados de IoT, de redes sociais em tempo real.