Spring Cloud is an ordered collection of a series of frameworks. It uses the development convenience of Spring Boot to subtly simplify the development of distributed system infrastructure, such as service discovery registration, configuration center, message bus, load balancing, circuit breaker, data monitoring , etc., all of which can be done in the development style of Spring Boot. to one-click launch and deployment. Spring does not repeat the manufacture of wheels, it just combines the more mature and practical service frameworks developed by various companies, and re-encapsulates the complex configuration and implementation principles through the Spring Boot style. The author has left a set of distributed system development toolkits that are easy to understand, easy to deploy and easy to maintain.
Spring Cloud
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer's own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.
SpringCloud distributed development five beasts
Service Discovery - Netflix Eureka
Client Load Balancing - Netflix Ribbon
Circuit Breaker - Netflix Hystrix
Service Gateway - Netflix Zuul
Distributed configuration - Spring Cloud Config
Spring Cloud builds on Spring Boot by providing a bunch of libraries that enhance the behaviour of an application when added to the classpath. You can take advantage of the basic default behaviour to get started really quickly, and then when you need to, you can configure or extend to create a custom solution.
Features
Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to cover others.
Distributed/versioned configuration
Service registration and discovery
Routing
Service-to-service calls
Load balancing
Circuit Breakers
Global locks
Leadership election and cluster state
Distributed messaging
The sub-projects of Spring Cloud can be roughly divided into two categories:
One is the encapsulation and abstraction of the existing mature framework "Spring Boot", and it is also the largest number of projects;
The second category is the implementation of the infrastructure that develops a part of the distributed system. For example, Spring Cloud Stream plays the role of kafka and ActiveMQ. For developers who want to quickly practice microservices, the first type of sub-project is enough, such as:
Spring Cloud Netflix
It is a package of a distributed service framework developed by Netflix, including service discovery and registration, load balancing, circuit breaker, REST client, request routing, etc.
Spring Cloud Config
Centrally save configuration information, and configure Spring Cloud Bus to dynamically modify configuration files
Spring Cloud Bus
Distributed message queue is the encapsulation of Kafka and MQ
Spring Cloud Security
Encapsulation of Spring Security and can be used with Netflix
Spring Cloud Zookeeper
Encapsulates Zookeeper so that it can be used by other Spring Cloud sub-projects
Spring Cloud Eureka
Spring Cloud Eureka is part of the Spring Cloud Netflix microservice suite. It is encapsulated twice based on Netflix Eureka and is mainly responsible for completing the service governance function in the microservice architecture.