Overview of the overall architecture of SpringCloud

What is a SpringCloud

  • The target

Coordinate any services to simplify distributed system development.

  • Building distributed systems shouldn’t be complicated. SpringCloud provides an easy-to-use programming model for common distributed system patterns to help developers build resilient, reliable, and coordinated applications. SpringCloud is built on top of SpringBoot, making it easy for developers to get started and quickly increase productivity. SpringCloud provides developers with tools to quickly build distributed system architectures, such as configuration management, service discovery, circuit breakers, intelligent routing, micro-proxies, control buses, one-time tokens, global locking, leadership elections, distributed sessions, cluster states, and more.

The overall architecture

Versioning relationships for SpringCloud

SpringCloud is an integrated project made up of many sub-projects, each with a different release rhythm. To manage SpringCloud’s version dependencies with each subproject, a checklist is published that contains the subproject versions corresponding to a certain SpringCloud version. In order to avoid confusion between the SpringCloud release number and the sub-project release number, the SpringCloud release number is named by name rather than version number. The names of these releases are the names of London Underground stations, which correspond to the chronological order of the release in alphabetical order. For example, Angel is the first version and Brixton is the second. When SpringCloud releases a critical mass or a major BUG is resolved, it releases a “service releases” version, or SRX version, For example, Greenwich.SR2 is the second SRX release of Greenwich released by SpringCloud.

  • Mapping between SpringCloud and SpringBoot versions

X Greenwich 2.1.x Finchley 2.0.x Edgware 1.5.x Dalston 1.5.x

  • SpringCloud corresponds to each sub-project version

Component edgware.sr6 Greenwich.SR2 Spring-Cloud-bus 1.3.4.RELEASE 2.1.2.RELEASE Spring-Cloud-Commons 1.3.6.RELEASE 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 RELEASE spring-cloud-stream ditmars. SR5 fishtown. SR3 Spring-cloud-zookeeper 1.2.3.RELEASE RELEASE spring-cloud-task 1.2.4.release 2.1.2.RELEASE spring-boot 1.5.21.RELEASE 2.1.5 Spring-cloud-gateway 1.0.3.release 2.1.2.RELEASE spring-cloud-openFeign 2.1.2. Greenwich version is built on SpringBoot version 2.1.x and is not available for Version 1.5.x. With the cessation of maintenance for SpringBoot 1.5.x in August 2019, the Edgware version will also be discontinued.

Introduction to SpringCloud sub-project

  • Spring Cloud Config

The centralized configuration management tool is a unified external configuration management tool in distributed systems. By default, Git is used to store configuration, and it can support client configuration refresh, encryption, and decryption operations.

  • Spring Cloud Netflix

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

  • Eureka

Service governance components, including server-side registries and client-side service discovery mechanisms;

  • Ribbon

Load balancing service call component, with a variety of load balancing call strategies;

  • The Hystrix service fault tolerant component implements a circuit breaker mode to provide fault tolerance for service-dependent errors and delays;
  • Feign’s declarative service invocation component based on the Ribbon and Hystrix;
  • Zuul API gateway component that provides routing and filtering capabilities for requests.
  • Spring Cloud Bus

A message bus for propagating cluster state changes, using lightweight message brokers to link nodes in a distributed system, can be used to dynamically refresh service configurations in a cluster.

  • Spring Cloud Consul

Service governance component based on Hashicorp Consul.

  • Spring Cloud Security

Security toolkit for load balancing OAuth2 client and login authentication in Zuul agent.

  • Spring Cloud Sleuth

Distributed request link tracing for SpringCloud applications, with support for Zipkin, HTrace, and log-based tracing (such as ELK).

  • Spring Cloud Stream

A lightweight event-driven microservice framework that can send and receive messages using a simple declarative model, mainly implemented as Apache Kafka and RabbitMQ.

  • Spring Cloud Task

A microservice framework for quickly building ephemeral, limited data processing tasks to add functional and non-functional features to applications.

  • Spring Cloud Zookeeper

Service governance component based on Apache Zookeeper.

  • Spring Cloud Gateway

API gateway component that provides routing and filtering capabilities for requests.

  • Spring Cloud OpenFeign

A declarative service invocation component based on the Ribbon and Hystrix that dynamically creates interface implementations based on Spring MVC annotations for service invocation has replaced Feign as a first class citizen in SpringCloud 2.0. Please pay attention to the use and principle of each technical component of SpringCloud in detail

Spring Cloud Eureka: Service Registration and Discovery in 5 minutes

Spring Cloud Ribbon: Load Balancing Service Invocation

Spring Cloud Hystrix: Service Fault Tolerance protection

Spring Cloud Zuul: API Gateway Services

Spring Cloud Config: External Centralized Configuration Management

Spring Cloud Sleuth: Link Tracing for distributed requests

Spring Cloud Consul: Service Governance & Configuration Center in 5 minutes

Spring Boot Admin: Micro service Application monitoring (small white must see, a look will tutorial)

Spring Cloud Alibaba: Using Nacos as a registry and configuration center

Spring Cloud Alibaba: Sentinel implementation of fusing and limiting flow

Spring Cloud Bus: Message Bus in 5 minutes

For technical exchange and discussion, or want to job-hopping salary can pay attention to my public account, free of charge for the interview materials and technical books