Обзор общей архитектуры SpringCloud

Java
Обзор общей архитектуры SpringCloud

Адрес фактического проекта электронной коммерции SpringBoot (20k+star):GitHub.com/macro-positive/…

Что такое SpringCloud

Цель

Оркестрируйте любой сервис и упростите разработку распределенной системы.

Введение

Создание распределенной системы не должно быть сложным. SpringCloud предоставляет простую в использовании модель программирования для общих шаблонов распределенных систем, помогая разработчикам создавать гибкие, надежные и скоординированные приложения. SpringCloud построен на основе SpringBoot, что позволяет разработчикам легко начать работу и быстро повысить свою производительность. SpringCloud предоставляет разработчикам инструменты для быстрого создания архитектуры распределенных систем, такие как управление конфигурацией, обнаружение сервисов, автоматические выключатели, интеллектуальная маршрутизация, микропрокси, управляющая шина, одноразовые токены, глобальная блокировка, выбор лидера, распределенные сеансы, состояние кластеров и т. д. и Т. Д.

Общая структура

来自Spring官网

Связь версии SpringCloud

SpringCloud — это комплексный проект, состоящий из множества подпроектов, каждый из которых имеет разный ритм выпуска. Чтобы управлять зависимостями версий между SpringCloud и каждым подпроектом, выпускается список, который включает версию подпроекта, соответствующую версии SpringCloud. Чтобы избежать путаницы между номерами версий SpringCloud и номерами версий подпроектов, версии SpringCloud именуются именами, а не номерами версий.Имена этих версий используют названия станций лондонского метрополитена, а хронологический порядок версий соответствует порядку алфавита, например, «Ангел» — первая версия, «Брикстон» — вторая версия. Когда содержимое выпуска SpringCloud достигает критической точки или устраняется серьезная ошибка, будет выпущена версия «служебных выпусков», называемая версией SRX. Например, Greenwich.SR2 — это вторая версия SRX Greenwich. версия, выпущенная SpringCloud.

Соответствие версий SpringCloud и SpringBoot

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 и каждой версией подпроекта

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 Нет 2.1.2.RELEASE

Примечание. Версия Greenwich создана на основе SpringBoot версии 2.1.x и не работает с версией 1.5.x. Поскольку версия SpringBoot 1.5.x не будет поддерживаться в августе 2019 года, версия Edgware также не будет поддерживаться.

Введение в подпроекты SpringCloud

Spring Cloud Config

Централизованный инструмент управления конфигурацией, унифицированное внешнее управление конфигурацией в распределенных системах, Git используется по умолчанию для хранения конфигурации и может поддерживать операции обновления, шифрования и расшифровки клиентской конфигурации.

Spring Cloud Netflix

Интеграция компонентов с открытым исходным кодом Netflix OSS, включая Eureka, Hystrix, Ribbon, Feign, Zuul и другие основные компоненты.

  • Eureka: компонент управления службами, включая реестр на стороне сервера и механизм обнаружения службы на стороне клиента;
  • Лента: компонент вызова службы балансировки нагрузки с несколькими стратегиями вызова балансировки нагрузки;
  • Hystrix: сервисный отказоустойчивый компонент, реализующий режим автоматического выключателя и обеспечивающий отказоустойчивость к ошибкам и задержкам зависимых сервисов;
  • Feign: компонент декларативного вызова службы на основе Ribbon и Hystrix;
  • Zuul: компонент шлюза API, обеспечивающий функции маршрутизации и фильтрации запросов.

Spring Cloud Bus

Шина сообщений для распространения изменений состояния кластера с использованием облегченных брокеров сообщений для связывания узлов в распределенной системе и может использоваться для динамического обновления конфигураций служб в кластере.

Spring Cloud Consul

Компонент управления услугами на основе Hashicorp Consul.

Spring Cloud Security

Набор инструментов безопасности, который поддерживает балансировку нагрузки клиентов OAuth2 и аутентификацию при входе в прокси-сервер Zuul.

Spring Cloud Sleuth

Распределенная трассировка цепочки запросов для приложений SpringCloud, поддерживающая трассировку с использованием Zipkin, HTrace и на основе журналов (например, ELK).

Spring Cloud Stream

Облегченная среда микрослужб, управляемая событиями, которая может использовать простую декларативную модель для отправки и получения сообщений, в основном реализованная как Apache Kafka и RabbitMQ.

Spring Cloud Task

Платформа микросервисов для быстрого создания краткосрочных ограниченных задач обработки данных для добавления функциональных и нефункциональных функций в приложения.

Spring Cloud Zookeeper

Компонент управления сервисом на основе Apache Zookeeper.

Spring Cloud Gateway

Компонент шлюза API обеспечивает функции маршрутизации и фильтрации запросов.

Spring Cloud OpenFeign

Компоненты декларативного вызова службы, основанные на Ribbon и Hystrix, могут динамически создавать реализации интерфейса на основе аннотаций Spring MVC для вызова службы.В SpringCloud 2.0 Feign был заменен как первоклассный гражданин.

следовать за

Последующая серия руководств по SpringCloud будет объясняться с использованием последней версии SpringCloud, Greenwich.SR2, так что следите за обновлениями!

публика

проект торгового центраПолный набор учебных пособий сериализуется,Обратите внимание на публичный аккаунтПолучите это прямо сейчас.

公众号图片