Padrões de Composição
Composição de software significa a maneira de construir seu produto de software. Basicamente, ele lida com um diagrama de arquitetura de software de alto nível, onde diferentes módulos de seu software se comunicam para objetivos de negócios específicos. Neste capítulo, aprenderemos sobre os diferentes padrões de composição de software amplamente usados nas organizações. No microsserviço, dividimos cada função em um processo. Cada um desses serviços será independente e de natureza completa.
A decomposição funcional desempenha um papel importante na construção de seus microsserviços. Ele fornece agilidade, flexibilidade e escalabilidade para seu aplicativo.
Padrão de agregador
O padrão de agregador é o padrão da web mais simples que pode ser implementado durante o desenvolvimento de um microsserviço. Nesse padrão de composição, um módulo da web simples atuará como um balanceador de carga, o que significa que chamará serviços diferentes de acordo com os requisitos. A seguir está um diagrama que descreve um aplicativo da web de microsserviço simples com design agregador. Como pode ser visto na imagem a seguir, o "Agregador" é responsável por chamar diferentes serviços um por um. Se precisarmos aplicar qualquer lógica de negócios sobre os resultados dos serviços A, B e C, podemos implementar a lógica de negócios no próprio agregador.
Um agregador pode ser novamente exposto como outro serviço para o mundo exterior, que pode ser consumido por outros sempre que necessário. Ao desenvolver o serviço da web de padrão agregador, precisamos ter em mente que cada um de nossos serviços A, B e C deve ter suas próprias camadas de cache e deve ser de pilha completa por natureza.
Padrão de proxy
O padrão de microsserviço de proxy é uma variação do modelo de agregador. Neste modelo, usaremos o módulo proxy em vez do módulo de agregação. O serviço proxy pode chamar serviços diferentes individualmente.
No padrão Proxy, podemos construir um nível extra de segurança fornecendo uma camada proxy de despejo. Esta camada atua de forma semelhante à interface.
Padrão Acorrentado
Como o nome sugere, esse tipo de padrão de composição seguirá a estrutura da cadeia. Aqui, não usaremos nada entre o cliente e a camada de serviço. Em vez disso, permitiremos que o cliente se comunique diretamente com os serviços e todos os serviços serão encadeados de tal forma que a saída de um serviço será a entrada do próximo serviço. A imagem a seguir mostra um microsserviço de padrão encadeado típico.
Uma das principais desvantagens dessa arquitetura é que o cliente ficará bloqueado até que todo o processo seja concluído. Portanto, é altamente recomendável manter o comprimento da corrente o mais curto possível.
Padrão de microsserviço de filial
Microsserviço de ramificação é a versão estendida do padrão agregador e do padrão de cadeia. Nesse padrão de design, o cliente pode se comunicar diretamente com o serviço. Além disso, um serviço pode se comunicar com mais de um serviço ao mesmo tempo. A seguir está a representação esquemática do microsserviço Branch.
O padrão de microsserviço de ramificação permite que o desenvolvedor configure chamadas de serviço dinamicamente. Todas as chamadas de serviço acontecerão de forma concorrente, o que significa que o serviço A pode chamar o serviço B e C simultaneamente.
Padrão de Recursos Compartilhados
O padrão de recursos compartilhados é, na verdade, um conglomerado de todos os tipos de padrões mencionados anteriormente. Nesse padrão, o cliente ou o balanceador de carga se comunicará diretamente com cada serviço sempre que necessário. Este é o padrão de design mais eficaz, amplamente seguido na maioria das organizações. A seguir está uma representação diagramática do padrão de design de Recursos Compartilhados.