Interações desnecessárias - Implementação de microsserviços na AWS

Interações desnecessárias

A divisão de aplicativos monolíticos em pequenos microsserviços aumenta a sobrecarga de comunicação, pois os microsserviços precisam conversar entre si. Muitas implementações usam o REST com HTTP por ser um protocolo de comunicação leve. No entanto, grandes volumes de mensagens podem causar problemas. Em alguns casos, você pode pensar na possibilidade de consolidar os serviços que enviam e recebem grande quantidade de mensagens. Se estiver em uma situação em que consolida um número maior de serviços apenas para reduzir as interações desnecessárias, você precisará revisar os domínios com problemas e o modelo de domínios.

Protocolos

Em uma seção anterior deste whitepaper, Comunicação assíncrona e sistemas de mensagem leves, diferentes protocolos possíveis são discutidos. Para microsserviços, é comum usar protocolos simples como HTTP. As mensagens trocadas pelos serviços podem ser codificadas de diferentes maneiras, como formatos legíveis, como JSON ou YAML, ou formatos binários eficientes, como Avro ou Protocol Buffers.

Armazenamento em cache

Os caches são uma ótima maneira de reduzir a latência e as interações desnecessárias de arquiteturas de microsserviços. Várias camadas de cache são possíveis, dependendo do caso de uso real e dos gargalos. Muitas aplicações de microsserviços executadas na AWS usam o ElastiCache para reduzir o volume de chamadas para outros microsserviços armazenando resultados em caches locais. O API Gateway fornece uma camada de armazenamento em cache incorporada para reduzir a carga em servidores de back-end. Além disso, o armazenamento em cache também é útil para reduzir a carga da camada de persistência de dados. O desafio de qualquer mecanismo de armazenamento em cache é encontrar o equilíbrio certo entre uma boa taxa de acertos do cache e a prontidão e consistência dos dados.