Lo primero que debe saber es que Spring Cloud es una arquitectura de microservicios.
La arquitectura de microservicios es un modelo arquitectónico que divide una sola aplicación en un conjunto de servicios muy pequeños, y los servicios se coordinan y cooperan entre sí. Cada servicio se ejecuta en un proceso separado, utilizando un mecanismo de comunicación ligero entre servicios (generalmente API RESTful de protocolo HTTP). Cada servicio tiene su propio negocio, y se puede implementar de forma independiente en el entorno de producción, entorno similar a la producción, etc. Para un servicio específico, debe basarse en el contexto, seleccionar el idioma apropiado, las herramientas para construirlo.
Spring Cloud es una arquitectura de microservicio, que incluye las siguientes funciones:
Registro y descubrimiento de servicio, invocación de servicio, fusible de servicio, equilibrio de carga, degradación del servicio, cola de mensajes de servicio, gestión del centro de configuración, puerta de enlace de servicio, monitoreo de servicio, seguimiento de enlace completo, construcción e implementación automatizada, tareas de temporización de servicio.
Sin embargo, solo los siguientes tipos se utilizan generalmente en el proyecto:
Servicio de registro y descubrimiento: EUREKA
Servicio de carga y llamada: NETFLIX OSS RIBBON, NETFLIX FEIGN
Degradación del fusible de servicio: HYSTRIX
Pasarela de servicio: NETFLIX Zuul
Configuración distribuida del servidor: Spring Coloud Config
Desarrollo del servicio: Spring Boot
Echemos un vistazo al análisis oficial.
Nube
El desarrollo de sistemas distribuidos es un desafío para los sistemas generales. La comunicación entre los servicios está más cerca, y Cloud cambia el enfoque del proyecto desde la capa de aplicación a la capa de red. El código necesita 12 factores para conectarse al servicio en la nube, como archivos de configuración, estado, registros y servicios conectados al back-end. Spring Cloud proporciona estos conjuntos de servicios para permitir que los servicios del programa de desarrolladores se ejecuten en la nube.
Arquitectura de Spring Cloud
La imagen es la siguiente:
Descubrimiento de servicio
En la nube, las aplicaciones solo conocerán los servicios en otros hosts, excepto los servicios locales. Sin embargo, Netflix Eureka y / o HashiCorp Consul pueden usar los servicios locales para conocer los problemas de los servicios en otros hosts. Spring Boot proporciona DiscoveryClient para implementar servicios para el registro del sistema Eureka, Consul, Zookeeper y Kubernetes.
Puerta de enlace API
Todos los servicios en la nube dependen de la puerta de enlace API para mantener su seguridad, ocultación de servicios y regulación de carga.
Configuración de la nube
En la nube, los archivos de configuración a menudo se usan en un conjunto de entornos o sistemas o en varias aplicaciones, en lugar de en una sola aplicación. Spring Cloud Config se usa para proporcionar esta ayuda.
Rastreo
La depuración de aplicaciones distribuidas es más complicada, y se determina que la falla requiere varios servicios independientes para ejecutarse y ubicarse juntos. Spring Cloud Sleuth puede probar aplicaciones.