Статья, которая поможет вам понять Spring Cloud

Spring Cloud
Статья, которая поможет вам понять Spring Cloud

Spring Cloud

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

Состав весеннего облака

Spring CloudЭто не относится к какой-то конкретной структуре, на самом деле это комбинация ряда зрелых платформ, черезSpring BootСтиль инкапсуляции скрывает сложные принципы конфигурации и реализации и, наконец, оставляет набор инструментов для разработки распределенных систем, которые легко понять и развернуть для разработчиков.

Мы знаем, что при разработке микросервисов необходима следующая инфраструктура:

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

Ниже приведеныSpring CloudПринципиальная схема каркаса, входящего в систему:

Spring Cloud

Знакомство с основными компонентами

Регистрация и обнаружение службы

Регистрация и обнаружение службыSpring CloudОдин из основных компонентов системы, все службы всей системы могут быть зарегистрированы в реестре, а затем объединены реестром для облегчения последующего горизонтального расширения и аварийного переключения.Spring CloudСуществует множество способов реализации центра регистрации в системе (см. рисунок выше), которые будут представлены один за другим в последующих руководствах.

Центр конфигурации

С увеличением количества служб каждая служба также будет иметь несколько сред (среда разработки, тестовая среда, производственная среда и т. д.), и файлы конфигурации каждой среды будут разными, но многие из них могут быть общими.Да, если каждая служба сама управляет этими конфигурациями, это доставит много хлопот в обслуживании.На данный момент нам необходимо ввести центр конфигурации для унифицированного управления этими конфигурациями.Spring Cloudпри условииSpring Cloud ConfigДля достижения этой задачи, но есть также лучшая реализация, предоставленная сообществом, такому как Ctrip.Apollo. Тем не менее, как уведомить конкретный сервис после обновления конфигурации еще одна проблема, такSpring Cloudтакже обеспечиваетSpring Cloud Busкомпоненты для связи между службами.

потребители услуг

Поскольку это микросервисная архитектура, вызовы между сервисами должны быть неизбежны.Spring Cloudпри условииRibbonКомпонент, его можно использовать для совершения звонков между службами, и в то же время он также поддерживает балансировку нагрузки на боковую клиентскую нагрузку. Тем не менее, напрямую используюRibbonНе очень удобно, т.Spring Cloudна основеNetflix Feign, и интегрируетRibbon, у которого естьSpring Cloud OpenFeign, который реализует декларативный клиент вызова службы, упрощая написание клиентов веб-службы.

Отказоустойчивость сервиса

В микросервисной архитектуре обычно есть несколько сервисов, вызывающих друг друга. Отказ некоторых базовых сервисов может привести к недоступности всей системы, что называется сервисной лавиной. Чтобы избежать этой ситуации, нам необходимо реализовать изоляцию сбоев и снижение качества обслуживания при сбое службы. Ввиду этой ситуации,Spring CloudиспользовалHystrixДобиться отказоустойчивости сервиса.

шлюз

Шлюз предоставляет системе такие функции, как маршрутизация, аутентификация, мониторинг и балансировка нагрузки.Spring CloudДля этого предусмотрено два решения:Zuulа такжеSpring Cloud Gateway.

отслеживание услуг

В микросервисной архитектуре цепочка вызовов между сервисами будет становиться все более и более сложной по мере увеличения количества сервисов.Когда мы устраняем определенные проблемы и отслеживаем показатели связи между сервисами, отслеживание сервисов становится очень важным.Spring CloudПредоставленная реализация:Spring Cloud Sleuth.

сервисный тест

Из-за особенностей микросервисной архитектуры каждый сервис может зависеть от других сервисов, и разные сервисы могут поддерживаться разными командами, поэтому, когда мы тестируем сервис, нам нужно развернуть все сервисы, от которых он зависит, стоимость очень высока. ; а если использовать только юнит-тестирование, то нужно имитировать много данных, а раз меняется интерфейс зависимого сервиса, то это невозможно воспринять только через юнит-тестирование. Итак, кто-то предложил CDC (Consumer-Driver Contracts), т.е.потребительский контрактспособ проверить.Spring Cloud ContractэтоCDCреализация .

Эпилог

Эта статья кратко знакомитSpring CloudСостав, в следующей серии статей, будет основан на последней версии Spring Cloud.[Greenwich.SR2]), чтобы подробно описать каждый модуль.


【Следующий】статье я представлю реестр Eureka.

扫描关注公众号