Чтение исходного кода SpringCloud Основные знания 0-SpringCloud

Spring Cloud

Прежде чем приступить к чтению исходного кода, я считаю необходимым рассказать о системе springcloud.

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

Эти проекты находятся по адресу:GitHub.com/spring - уродливо...Включать:

  • Spring Cloud Commons
  • SpringCloud Netflix
  • SpringCloud Stream
  • SpringCloud Config .....

Эта статья посвящена двум проектам:

Spring Cloud commons

Этот проект очень важен, потому что он содержит два важных подмодуля:

1.Spring Cloud Context: Предоставляет проекту такие функции, как контекст загрузки, шифрование, область обновления и конечные точки среды. Когда SpringCloud создает контекст (т. е. экземпляр ApplicationContext), он принимает дизайн контейнера родитель-потомок Spring и создает родительский контейнер Bootstrap Application Context поверх контейнера, созданного SpringBoot (далее именуемого контейнером приложения). ).

2.Spring Cloud Commons: Глядя на его название, видно, что это проект общего назначения, который будет представлен другими проектами.

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

Такие столбцы, как:DiscoveryClientиспользовать, мы можем решить использоватьSpring Cloud Netflix Eureka,Spring Cloud Consul发现和Spring Cloud Zookeeper发现.

  • когда мы используем@EnableDiscoveryClientпредставлятьDiscoveryClientКогда, какое конкретное введениеDiscoveryClient, это будет зависеть от того, какой конкретно проект вы импортируете. если бы мы использовалиSpring Cloud Netflix Eureka. что принесетSpring Cloud Netflix EurekaизDiscoveryClient.

  • когда мы используем@EnableEurekaClientпредставлятьDiscoveryClient, то есть явно использовать толькоSpring Cloud Netflix EurekaизDiscoveryClient.

Это тоже@EnableDiscoveryClientа также@EnableEurekaClientразница.

Из этого мы можем видеть цель Spring Cloud Commons как публичного проекта.

Spring Cloud Netflix

Netflix имеет открытую структуру распределенных сервисов, Netflix OSS. адрес проектаgithub.com/Netflix

Проект Spring Cloud Netflix переупаковал его, чтобы сделать его более подходящим для системы springcloud. Spring Cloud Netflix включает подпроекты, соответствующие Netflix OSS.

  • SpringCloud-Eureka -- Netflix Eureka
  • SpringCloud-Ribbon -- Netflix Ribbon
  • SpringCloud-Hystrix -- Netflix Hystrix
  • ...

Когда мы думаем о весеннем облаке, это Эврика, Лента. Я думаю, что это неправильно, Eureka и Ribbon существуют только как подпроекты проекта Spring Cloud Netflix в рамках системы Springcloud, и они являются просто реализацией компонентов микросервиса.

Поскольку мы обычно используем эти реализации в рамках проекта Spring Cloud Netflix, мы объективно считаем, что Eureka и Ribbon — это springcloud.

Поэтому, прежде чем читать исходный код, уточните эти отношенияspringcloud,Spring Cloud Netflix ,Netflix OSSочень нужно.

Самое главное: когда мы читаемSpringCloud-Eureka,SpringCloud-RibbonВ ожидании исходного кода см.Netflix OSSвики-документация, полезная для нас, чтобы понять их.


Адрес документа springcloud:

Английский адрес Netflix Эврика

Spring Cloud xxx

В коллекции springcloud есть много проектов, и адреса проектов находятся по адресу:GitHub.com/spring - уродливо...

Суммировать:

Поняв некоторые из этих взаимосвязей, начните читать исходный код некоторых из этих ключевых компонентов.