SpringCloud overall architecture overview

SpringBoot actual electricity supplier item mall (20k + star) Address: github.com/macrozheng/...

What is SpringCloud

aims

Coordinate any service, simplifying the development of distributed systems.

Brief introduction

Building distributed systems should not be that complicated, SpringCloud of common distributed system model provides a simple-to-use programming model helps developers build flexible, reliable and coordinated applications. SpringCloud is built on the basis of SpringBoot, so developers can easily get up and running quickly improve efficiency. SpringCloud provides developers with the tools to quickly build a distributed system architecture, such as configuration management, service discovery, circuit breakers, intelligent routing, micro broker, a control bus, a one-time token, global lock leadership election, distributed session clustering status.

Overall structure

Spring from official website

Version of the relationship SpringCloud

SpringCloud is a comprehensive program made up of many sub-projects and subprojects have different publishing rhythm. To manage versions SpringCloud with each sub-project dependencies, it released a list that included a certain SpringCloud version of the corresponding sub-version. In order to avoid SpringCloud version number and version number of subprojects confusion, SpringCloud version adopted naming names instead of the version number, the name of these versions uses the name of the London Underground station, according to the alphabetical order to the corresponding versions in chronological order, for example, is Angel The first version, Brixton is the second version. When SpringCloud publish content to accumulate a critical point or a major BUG is resolved, will release a "service releases" version, referred to as the SRX version, such as Greenwich.SR2 is SpringCloud released the second version of the Greenwich SRX version.

SpringCloud and SpringBoot correspondence between the versions

SpringCloud Version SpringBoot Version
Hoxton 2.2.x
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

SpringCloud and correspondence between the versions of each subproject

Component Edgware.SR6 Greenwich.SR2
spring-cloud-bus 1.3.4.RELEASE 2.1.2.RELEASE
spring-cloud-commons 1.3.6.RELEASE 2.1.2.RELEASE
spring-cloud-config 1.4.7.RELEASE 2.1.3.RELEASE
spring-cloud-netflix 1.4.7.RELEASE 2.1.2.RELEASE
spring-cloud-security 1.2.4.RELEASE 2.1.3.RELEASE
spring-cloud-consul 1.3.6.RELEASE 2.1.2.RELEASE
spring-cloud-sleuth 1.3.6.RELEASE 2.1.1.RELEASE
spring-cloud-stream Ditmars.SR5 Fishtown.SR3
spring-cloud-zookeeper 1.2.3.RELEASE 2.1.2.RELEASE
spring-boot 1.5.21.RELEASE 2.1.5.RELEASE
spring-cloud-task 1.2.4.RELEASE 2.1.2.RELEASE
spring-cloud-gateway 1.0.3.RELEASE 2.1.2.RELEASE
spring-cloud-openfeign No 2.1.2.RELEASE

Note: Greenwich-based version is built SpringBoot 2.1.x version, does not apply to 1.5.x version. With the August 2019 cease maintenance SpringBoot 1.5.x version, Edgware version will also be stopped for maintenance.

SpringCloud subprojects Profile

Spring Cloud Config

Centralized configuration management tools, distributed system external configuration management, using Git to store configuration by default, you can refresh and support the client configuration encryption, decryption operations.

Spring Cloud Netflix

Netflix OSS integration of open source components, including Eureka, Hystrix, Ribbon, Feign, Zuul, and other core components.

  • Eureka: service management components, including registry and service discovery mechanism for client service side;
  • Ribbon: load balancing service call component, with a variety of load balancing call strategy;
  • Hystrix: fault-tolerant service component, to achieve a cut-out mode, provides fault tolerance for the error and delay dependent services;
  • Feign: calling component based on the Ribbon and Hystrix declarative services;
  • Zuul: API gateway component, to requests for routing and filtering.

Spring Cloud Bus

For propagating the message bus cluster state changes, the use of lightweight message broker link nodes in the distributed system can be used to refresh the dynamic service configuration cluster.

Spring Cloud Consul

Based service management component of Hashicorp Consul.

Spring Cloud Security

Security Toolkit for Zuul proxy load balancing OAuth2 client and login authentication be supported.

Spring Cloud Sleuth

Distributed applications SpringCloud tracking request links to support the use Zipkin, HTrace and based on the log (e.g., ELK) tracking.

Spring Cloud Stream

Lightweight event-driven framework for micro-services, can send and receive messages using a simple declarative model, the main achievement for the Apache Kafka and RabbitMQ.

Spring Cloud Task

For rapidly building a short, micro-services framework limited data processing tasks for adding functional and non-functional features to applications.

Spring Cloud Zookeeper

Based service management component of Apache Zookeeper.

Spring Cloud Gateway

API gateway component, to requests for routing and filtering.

Spring Cloud OpenFeign

Declarative components based on service calls and Hystrix Ribbon, you can dynamically create an implementation based on Spring MVC annotation interface for service invocation, in SpringCloud 2.0 has replaced Feign become first-class citizens.

Follow-up

Follow SpringCloud series of tutorials will use the latest version Greenwich.SR2 SpringCloud to explain, stay tuned!

No public

mall project a full tutorial serialized in public concern number the first time to obtain.

No public picture

Guess you like

Origin juejin.im/post/5d764f05e51d4561fb04bfd7