¿Te gustaría aprender Carrera Desarrollador microservicios en la nube con Java?
Tenemos los cursos que necesitas. ¡Haz clic aquí!
Spring Cloud proporciona herramientas para que los desarrolladores creen rápidamente algunos de los patrones comunes en sistemas distribuidos (por ejemplo, administración de configuración, descubrimiento de servicios, disyuntores, enrutamiento inteligente, micro-proxy, bus de control, tokens de un solo uso, bloqueos globales, elección de liderazgo, distribución sesiones, estado del clúster). La coordinación de sistemas distribuidos conduce a patrones de placas de calderas, y los desarrolladores de Spring Cloud pueden implementar rápidamente servicios y aplicaciones que implementan esos patrones. Funcionarán bien en cualquier entorno distribuido, incluida la propia computadora portátil del desarrollador, los centros de datos bare metal y las plataformas administradas como Cloud Foundry.
Características
Spring Cloud se enfoca en brindar una buena experiencia lista para usar para casos de uso típicos y un mecanismo de extensibilidad para cubrir otros.
- Configuración distribuida / versionada
- Registro y descubrimiento de servicios
- Enrutamiento
- Llamadas de servicio a servicio
- Balanceo de carga
- Rompedores de circuito
- Cerraduras globales
- Elección de liderazgo y estado del clúster
- Mensajería distribuida
Generando un nuevo proyecto de Spring Cloud
La forma más fácil de comenzar es visitar start.spring.io , seleccionar su versión de Spring Boot y los proyectos de Spring Cloud que desea usar. Esto agregará la versión correspondiente de Spring Cloud BOM a su archivo Maven / Gradle cuando genere el proyecto.
Agregar Spring Cloud a una aplicación Spring Boot existente
Si tiene una aplicación Spring Boot existente que desea agregar Spring Cloud a esa aplicación, el primer paso es determinar la versión de Spring Cloud que debe usar. La versión que use en su aplicación dependerá de la versión de Spring Boot que esté usando.
La siguiente tabla describe qué versión de Spring Cloud se asigna a qué versión de Spring Boot.
Tren de lanzamiento | Versión de arranque |
---|---|
2020.0.x también conocido como Ilford | 2.4.x |
Hoxton | 2.2.x, 2.3.x (comenzando con SR5) |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
Spring Cloud Dalston, Edgware y Finchley han alcanzado el final de su vida útil y ya no son compatibles. |
Se agregan correcciones de errores y funciones compatibles con versiones anteriores a cada tren de lanzamiento a través de un lanzamiento de servicio (SR). Una vez que determine qué versión de Spring Cloud usar, debe usar la última versión de servicio para ese tren de lanzamiento. Puede encontrar la información más reciente sobre la versión del servicio en nuestra página de notas de la versión .
Ahora que sabe qué tren de versiones usar y la última versión de servicio para ese tren de versiones, está listo para agregar Spring Cloud BOM a su aplicación.
<properties>
<spring.cloud-version>Hoxton.SR8</spring.cloud-version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
buildscript {
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:1.0.10.RELEASE"
}
}
ext {
set('springCloudVersion', "Hoxton.SR8")
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}'
}
}
El tren de liberación contiene tanto un spring-cloud-dependencies archivo spring-cloud-starter-parent . Puede usar el padre como lo haría spring-boot-starter-parent (si está usando Maven). Si solo necesita administración de dependencias, la versión de «dependencias» es una versión solo BOM de lo mismo (solo contiene administración de dependencias y no declaraciones de complementos o referencias directas a Spring o Spring Boot). Si está utilizando el POM principal de Spring Boot, puede utilizar el BOM de Spring Cloud. Lo contrario no es cierto: usar el padre de Cloud hace que sea imposible, o al menos poco confiable, usar también Boot BOM para cambiar la versión de Spring Boot y sus dependencias. |
Al igual que Spring Boot, muchos proyectos de Spring Cloud incluyen iniciadores que puede agregar como dependencias para agregar varias características nativas de la nube a su proyecto. En muchos casos, muchas funciones se habilitan simplemente agregando el iniciador a su classpath. Los nombres de los principiantes están documentados dentro de los proyectos individuales. A continuación, se muestra un ejemplo de cómo agregaría un cliente Spring Cloud Config y un cliente Spring Cloud Netflix Eureka a su aplicación.
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
...
</dependencies>
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
//...
}
Proyectos Principales
Configuración de Spring Cloud
Gestión de configuración externa centralizada respaldada por un repositorio git. Los recursos de configuración se asignan directamente a Spring, Environment
pero pueden ser utilizados por aplicaciones que no sean de Spring si se desea.
Spring Cloud Netflix
Integración con varios componentes de Netflix OSS (Eureka, Hystrix, Zuul, Archaius, etc.).
Spring Cloud Bus
Un bus de eventos para vincular servicios e instancias de servicio junto con mensajería distribuida. Útil para propagar cambios de estado en un clúster (por ejemplo, eventos de cambio de configuración).
Spring Cloud Cloudfoundry
Integra su aplicación con Pivotal Cloud Foundry. Proporciona una implementación de descubrimiento de servicios y también facilita la implementación de recursos protegidos SSO y OAuth2.
Agente de servicio abierto Spring Cloud
Proporciona un punto de partida para crear un intermediario de servicios que implemente la API de Open Service Broker.
Clúster de nubes de primavera
Elección de liderazgo y patrones de estado comunes con una abstracción e implementación para Zookeeper, Redis, Hazelcast, Consul.
Cónsul de Spring Cloud
Gestión de configuración y descubrimiento de servicios con Hashicorp Consul.
Spring Cloud Security
Brinda soporte para el cliente de descanso OAuth2 con equilibrio de carga y los relés de encabezado de autenticación en un proxy Zuul.
Spring Cloud Sleuth
Seguimiento distribuido para aplicaciones Spring Cloud, compatible con Zipkin, HTrace y seguimiento basado en registros (por ejemplo, ELK).
Flujo de datos de Spring Cloud
Un servicio de orquestación nativo de la nube para aplicaciones de microservicio componibles en tiempos de ejecución modernos. El DSL fácil de usar, la GUI de arrastrar y soltar y las API REST en conjunto simplifican la orquestación general de las canalizaciones de datos basadas en microservicios.
Spring Cloud Stream
Un marco de microservicios ligero impulsado por eventos para crear rápidamente aplicaciones que se pueden conectar a sistemas externos. Modelo declarativo simple para enviar y recibir mensajes usando Apache Kafka o RabbitMQ entre aplicaciones Spring Boot.
Aplicaciones Spring Cloud Stream
Las aplicaciones Spring Cloud Stream son aplicaciones Spring Boot listas para usar que brindan integración con sistemas de middleware externos como Apache Kafka, RabbitMQ, etc., utilizando la abstracción de aglutinante en Spring Cloud Stream.
Tarea de Spring Cloud
Un marco de microservicios de corta duración para crear rápidamente aplicaciones que realizan cantidades finitas de procesamiento de datos. Declarativo simple para agregar características funcionales y no funcionales a las aplicaciones Spring Boot.
Iniciadores de la aplicación Spring Cloud Task
Los iniciadores de la aplicación Spring Cloud Task son aplicaciones Spring Boot que pueden ser cualquier proceso, incluidos los trabajos de Spring Batch que no se ejecutan para siempre, y terminan / se detienen después de un período finito de procesamiento de datos.
Spring Cloud Zookeeper
Gestión de configuración y descubrimiento de servicios con Apache Zookeeper.
Conectores de Spring Cloud
Facilita que las aplicaciones PaaS en una variedad de plataformas se conecten a servicios de backend como bases de datos y agentes de mensajes (el proyecto anteriormente conocido como «Spring Cloud»).
Arrancadores de Spring Cloud
Proyectos de inicio al estilo Spring Boot para facilitar la gestión de dependencias para los consumidores de Spring Cloud. (Se discontinuó como proyecto y se fusionó con los otros proyectos después de Angel.SR2.)
Spring Cloud CLI
Complemento Spring Boot CLI para crear aplicaciones de componentes Spring Cloud rápidamente en Groovy
Contrato de Spring Cloud
Spring Cloud Contract es un proyecto general que contiene soluciones que ayudan a los usuarios a implementar con éxito el enfoque de contratos impulsados por el consumidor.
Spring Cloud Gateway
Spring Cloud Gateway es un enrutador inteligente y programable basado en Project Reactor.
Spring Cloud OpenFeign
Spring Cloud OpenFeign proporciona integraciones para las aplicaciones Spring Boot a través de la configuración automática y el enlace con Spring Environment y otros modismos del modelo de programación Spring.
Spring Cloud Pipelines
Spring Cloud Pipelines proporciona una canalización de implementación obstinada con pasos para garantizar que su aplicación se pueda implementar sin tiempo de inactividad y deshacerse fácilmente de algo que salga mal.
Función Spring Cloud
Spring Cloud Function promueve la implementación de la lógica empresarial a través de funciones. Admite un modelo de programación uniforme en todos los proveedores sin servidor, así como la capacidad de ejecutarse de forma independiente (localmente o en una PaaS).
Trenes de liberación
Spring Cloud es un proyecto paraguas que consta de proyectos independientes con, en principio, diferentes cadencias de lanzamiento. Para administrar la cartera, se publica una lista de materiales (BOM) con un conjunto seleccionado de dependencias del proyecto individual.
Todas estas ventajas que hemos analizado son clave para crear microservicios, pues ya no es necesario instalar servidores de aplicaciones o tener configuraciones muy complejas.
¿Te gustaría aprender Carrera Desarrollador microservicios en la nube con Java?
Tenemos los cursos que necesitas. ¡Haz clic aquí!