La siguiente sección define las dependencias básicas que se deben tener presente y utilizar en el desarrollo de los microservicios de la fábrica según la necesidad de los mismos.
La siguiente imagen define el escenario estandar de dependencias que pueden ser utilizados en un microservicio. Posteriormente se describirá cada una deacuerdo al grupo al que pertenece.
Se definen las siguientes clasificaciones de dependencias:
Son aquellas dependencias que deben estár presentes en todos los microservicios ya que su uso aplica la arquitectura desea en la fabrica de desarrollo. A continuación se define esas dependencias:
Spring Boot DevTools1) es la herramienta de Spring Boot que nos permite reiniciar de forma automática nuestras aplicaciones cada vez que se produce un cambio en nuestro código. Utíl para la fase de desarrollo y pruebas.
Spring Boot Actuator2) es una librería que nos proporciona herramientas de monitorización y administración de nuestra API REST de una manera bastante sencilla.
Spring Cloud Config3) es el enfoque cliente / servidor de Spring para almacenar y servir configuraciones distribuidas en múltiples aplicaciones y entornos.
Este almacén de configuración se versiona idealmente bajo el control de versión de Git y se puede modificar en el tiempo de ejecución de la aplicación.
Eureka4) es un servicio REST, utilizándose principalmente en la nube de AWS, a la cuál está estrechamente ligado. Eureka se comporta como servidor, cuyo objetivo es registrar y localizar microservicios existentes, informar de su localización, su estado y datos relevantes de cada uno de ellos. Además, nos facilita el balanceo de carga y tolerancia a fallos.
La dependencia cliente permite que los microservicios se registren automaticamente al arrancar su instancia.
Contiene los recursos necesarios (conjunto de dependencias) para el desarrollo web5).
Son aquellas dependencias que permiten obtener infomración asociada al microservicio como:
Se define las siguientes dependencias de traza:
Zipkin6) es un proyecto de código abierto que proporciona mecanismos para enviar, recibir, almacenar y visualizar trazas. Esto nos permite correlacionar la actividad entre servidores y obtener una imagen mucho más clara de lo que está sucediendo exactamente en nuestros servicios.
La dependencia cliente permite integrar el registro en el servidor Zipkin.
RabbitMQ es un servidor AMQP. Es decir acepta y reenvia mensajes.
Son aquellas dependencias que proveen clientes para el consumo de servicios como Feign o RestController
Feign7) es un cliente java http ligero. Que se al stack Spring Boot para simplificar el consumo de los servicios.
Son aquellas relacionadas a la persistencia de la información o a la gestión y exposición de los datos. Entre ellas están definidas:
El uso de estas dependencias dependerá del origen de datos.