Patrones de composición
La composición de software significa la forma de construir su producto de software. Básicamente se trata de un diagrama de arquitectura de software de alto nivel donde diferentes módulos de su software se comunicarán para objetivos comerciales específicos. En este capítulo, aprenderemos sobre diferentes patrones de composición de software ampliamente utilizados en las organizaciones. En microservicio, dividimos cada función en un proceso. Cada uno de estos servicios será independiente y de naturaleza completa.
La descomposición funcional juega un papel importante en la construcción de sus microservicios. Proporciona agilidad, flexibilidad y escalabilidad a su aplicación.
Patrón de agregador
El patrón agregador es el patrón web más simple que se puede implementar mientras se desarrolla un microservicio. En este patrón de composición, un módulo web simple actuará como un equilibrador de carga, lo que significa que llamará a diferentes servicios según los requisitos. A continuación se muestra un diagrama que muestra una aplicación web de microservicio simple con diseño de agregador. Como se ve en la siguiente imagen, el "Agregador" se encarga de llamar a diferentes servicios uno por uno. Si necesitamos aplicar alguna lógica comercial sobre los resultados del servicio A, B y C, entonces podemos implementar la lógica comercial en el agregador.
Un agregador puede volver a exponerse como otro servicio al mundo exterior, que otros pueden consumir cuando sea necesario. Al desarrollar el servicio web de patrones de agregadores, debemos tener en cuenta que cada uno de nuestros servicios A, B y C deben tener sus propias capas de almacenamiento en caché y deben ser de pila completa.
Patrón de proxy
El patrón de microservicio proxy es una variación del modelo de agregador. En este modelo usaremos el módulo proxy en lugar del módulo de agregación. El servicio de proxy puede llamar a diferentes servicios individualmente.
En el patrón Proxy, podemos construir un nivel de seguridad adicional proporcionando una capa de proxy de volcado. Esta capa actúa de manera similar a la interfaz.
Patrón encadenado
Como sugiere el nombre, este tipo de patrón de composición seguirá la estructura de la cadena. Aquí, no usaremos nada entre el cliente y la capa de servicio. En cambio, permitiremos que el cliente se comunique directamente con los servicios y todos los servicios se encadenarán de tal manera que la salida de un servicio será la entrada del siguiente servicio. La siguiente imagen muestra un microservicio de patrón encadenado típico.
Un gran inconveniente de esta arquitectura es que el cliente estará bloqueado hasta que se complete todo el proceso. Por tanto, es muy recomendable mantener la longitud de la cadena lo más corta posible.
Patrón de microservicio de rama
El microservicio de rama es la versión extendida del patrón de agregación y el patrón de cadena. En este patrón de diseño, el cliente puede comunicarse directamente con el servicio. Además, un servicio puede comunicarse con más de un servicio a la vez. A continuación se muestra la representación esquemática de Branch Microservice.
El patrón de microservicio de sucursal permite al desarrollador configurar las llamadas de servicio de forma dinámica. Todas las llamadas de servicio se realizarán de manera simultánea, lo que significa que el servicio A puede llamar al Servicio B y C simultáneamente.
Patrón de recursos compartidos
El patrón de recursos compartidos es en realidad un conglomerado de todos los tipos de patrones mencionados anteriormente. En este patrón, el cliente o el equilibrador de carga se comunicará directamente con cada servicio cuando sea necesario. Este es el patrón de diseño más eficaz seguido ampliamente en la mayoría de las organizaciones. A continuación se muestra una representación esquemática del patrón de diseño de recurso compartido.