Внезапно я обнаружил, что не писал на этой неделе.
В метро вдруг понял.
Так что он был нахальным, достал свой компьютер и сделал HTTPS-запрос к Nuggets.
Какие! От начала и до конца, до выходных остался всего 1 день!
В этой статье приведен полный пример кода, см.GitHub.com/Y u — День V/SP…
Оригинальность не так проста, дай мне немногоStarЭй, пошли утку!
1. Весенняя облачная система
Я думаю, что многие толстые друзья видели следующую картину:
- SpringкБин (объект)Как центр, он обеспечивает IOC, AOP и другие функции.
- Spring BootкПрименениецентр, обеспечитьАвтоматическая конфигурация,монитори другие функции.
- Spring CloudкУслугаВ качестве центра он обеспечивает такие функции, как регистрация и обнаружение служб, вызов служб и балансировка нагрузки.
Давайте взглянем на официальное краткое представление Spring Cloud о себе:
FROM GitHub.com/spring - уродливо...
Tools for building common patterns in distributed systems with Spring
- Построение распределенных систем на базе SpringНабор инструментов, именуемый «Весеннее семейное ведро".
Давайте взглянем на официальное введение Spring Cloud в функциональные точки:
FROM spring.IO/проекты/билеты…
список функций:
- 【Центр конфигурации】Распределенная/версионная конфигурация
- 【Центр регистрации】Регистрация и обнаружение услуг
- 【Шлюз API】Маршрутизация
- 【Сервисный звонок】Вызовы между службами
- 【Балансировка нагрузки】Балансировка нагрузки
- 【Отказоустойчивость обслуживания】Автоматические выключатели
- [Распределенный обмен сообщениями] Распределенный обмен сообщениями
------------ Разделитель -------------
Следующие функции перенесены из Spring Cloud вSpring Integrationсередина:
- 【Глобальная блокировка】Глобальная блокировка
- [Выборы руководства и состояние кластера] Выборы руководства и состояние кластера
Хотя Spring Cloud предоставляет очень мощные функции, он неНе все реализации предоставлены, но черезSpring Cloud Commonподпроект, определяетЕдиный абстрактный API. Как показано ниже:
Затем разныеПроизводительв сочетании со своимпромежуточное ПО, предоставляя собственное Spring CloudКомплект,Например:
-
Netflix объединяет собственное ПО Eureka, Ribbon, Hystrix и другое промежуточное ПО с открытым исходным кодом для достиженияspring-cloud-netflix
Spring Cloud Netflix — самый популярный пакет Spring Cloud, используемый в настоящее время в Китае. Однако с корректировкой Netflix в открытом исходном коде он будет постепенно снижаться.
-
Kubernetes сочетает в себе собственный apiserver, configmap и другие функции для достиженияspring-cloud-kubernetes
-
Alibaba объединяет собственное промежуточное программное обеспечение с открытым исходным кодом, такое как Nacos, Dubbo, Sentinel и т. д., для достиженияspring-cloud-alibaba
Визуально предсказать, что Spring Cloud Alibaba будет популярен в Китае? !
Конечно, Spring Cloud официально предоставляет конкретную реализацию некоторых функций, хе-хе. Например:
- Шлюз API:Spring Cloud Gateway
- Центр конфигурации:Spring Cloud Config,Spring Cloud Vault
- Отслеживание ссылок:Spring Cloud Sleuth
- Управляется сообщением:Spring Cloud Stream
- Автобус событий:Spring Cloud Bus
- Сервисный звонок:Spring Cloud OpenFeign
- Балансировка нагрузки:Spring Cloud Load Balancer
Ниже мы организуем официальных представителей Spring Cloud, Netflix и Alibaba в следующую таблицу:
2. Комплект Spring Cloud Alibaba
Spring Cloud Alibabaкомплект, алиОткрытый исходный кодКомпоненты, Облако AlibabaБизнесКомпоненты интегрированы в систему Spring Cloud и одновременно интегрируют Spring Cloud Gateway, OpenFeign, Ribbon и т. д. Все показано на рисунке ниже:
Мы можем использовать пакет Spring Cloud Alibaba вКомпоненты с открытым исходным кодом Алиа такжеОблачные бизнес-компоненты AlibabaСгруппированы в следующую сравнительную таблицу:
Основные функции следующие:
- Регистрация и обнаружение службы: адаптируйтесь к стандартам регистрации и обнаружения сервисов Spring Cloud и интегрируйте поддержку ленты по умолчанию.
- Распределенное управление конфигурацией: поддерживает внешнюю конфигурацию в распределенных системах и автоматически обновляется при изменении конфигурации.
- Снижение уровня обслуживания: По умолчанию он поддерживает доступ к текущим функциям ограничения и понижения версии WebServlet, WebFlux, OpenFeign, RestTemplate, Spring Cloud Gateway, Zuul, Dubbo и RocketMQ. Вы можете изменить текущие правила ограничения и понижения версии в режиме реального времени через консоль во время выполнения. , а также поддержка просмотра текущего ограничения и понижения Мониторинга метрик.
- управляемый сообщениями: Создавайте управляемые сообщениями возможности для микросервисных приложений на основе Spring Cloud Stream.
-
Распределенная транзакция:использовать
@GlobalTransactional
Аннотация, эффективно решайте проблемы с распределенными транзакциями и не вмешивайтесь в бизнес.
Коммерческие эксклюзивные функции:
-
Распределенное планирование задач: Предоставляет услуги планирования задач второго уровня, точные, высоконадежные и высокодоступные (на основе выражений Cron). Он также предоставляет модели выполнения распределенных задач, такие как задачи сетки. Grid-задачи поддерживают равномерное распределение морских квантовых задач для всех рабочих (schedulerx-client) для выполнения.
Когда-то Ali SchedulerX тоже был проектом с открытым исходным кодом, а сейчас никаких новостей... Эй, надеюсь, в будущем его можно будет перезапустить.
-
Облачное хранилище объектов Alibaba: массивные, безопасные, недорогие и высоконадежные услуги облачного хранения, предоставляемые Alibaba Cloud. Храните и получайте доступ к любым типам данных в любом приложении, в любое время и в любом месте.
-
Облачный SMS-сервис Alibaba: SMS-сервисы, охватывающие весь мир, дружественные, эффективные и интеллектуальные взаимосвязанные коммуникационные возможности помогают предприятиям быстро создавать каналы доступа к клиентам.
Дружеское напоминание: по-прежнему рекомендуется использоватьоблачный покровЧтобы отправить текстовое сообщение, девушка из службы поддержки обычно отвечает за считанные секунды, особенно при просмотре шаблона текстового сообщения.
2.1 Компоненты с открытым исходным кодом Alibaba
2.1.1 Nacos
Nacos: платформа динамического обнаружения служб, управления конфигурацией и управления службами, упрощающая создание облачных приложений.
- «Дао Дао Spring Cloud Регистрационный центр Alibaba Nacos Введение»
- "Tao Dao Spring Cloud Alibaba Configuration Center Nacos Начало работы"
2.1.2 Dubbo
Dubbo: Apache Dubbo™ — это высокопроизводительная платформа Java RPC.
2.1.3 Sentinel
Sentinel: Используйте трафик в качестве точки входа для защиты стабильности служб от нескольких измерений, таких как управление трафиком, переход на более ранние автоматические выключатели и защита системной нагрузки.
2.1.4 RocketMQ
RocketMQ: Распределенная система обмена сообщениями с открытым исходным кодом, основанная на технологии распределенных кластеров с высокой доступностью, предоставляет услуги публикации сообщений и подписки с низкой задержкой и высокой надежностью.
- «Введение в очередь сообщений Spring Cloud Alibaba RocketMQ»
- «Введение в Spring Cloud Alibaba Event Bus RocketMQ»вести перепискуlabx-20
2.1.5 Seata
Seata: продукт Alibaba с открытым исходным кодом, простое в использовании высокопроизводительное решение для распределенных транзакций с микросервисами.
2.2 Коммерческие компоненты Alibaba Cloud
2.2.1 Alibaba Cloud ACM
Alibaba Cloud ACM: продукт центра конфигурации приложений, который централизованно управляет конфигурациями приложений и распространяет их в среде с распределенной архитектурой.
2.2.2 Alibaba Cloud OSS
Alibaba Cloud OSS: Alibaba Cloud Object Storage Service (OSS) — это массивная, безопасная, недорогая и высоконадежная облачная служба хранения, предоставляемая Alibaba Cloud. Вы можете хранить и получать доступ к любым типам данных в любом приложении, в любое время и в любом месте.
2.2.3 Alibaba Cloud SchedulerX
Alibaba Cloud SchedulerX: Распределенный продукт планирования задач, разработанный командой промежуточного программного обеспечения Alibaba, который предоставляет услуги планирования задач второго уровня, точные, высоконадежные и высокодоступные (на основе выражений Cron).
2.2.4 Alibaba Cloud SMS
Alibaba Cloud SMS: SMS-сервисы, охватывающие весь мир, дружественные, эффективные и интеллектуальные взаимосвязанные коммуникационные возможности помогают предприятиям быстро создавать каналы связи с клиентами.
2.3 Интеграция других компонентов Spring Cloud
После интеграции Spring Cloud Alibaba в систему Spring Cloud ее можно легко выполнять с другими компонентами Spring Cloud.смешиваниеИспользование, сильная комбинация. Это также может компенсировать компоненты с открытым исходным кодом, которые временно отсутствуют в Alibaba.
Дружеское напоминание: будут добавлены только недостающие компоненты Spring Cloud Alibaba следующим образом.
2.3.1 Шлюз API
- 【рекомендовать】«Введение в Spring Cloud Service Gateway Spring Cloud Gateway»
- Планируется создание шлюза облачных сервисов Yao Road Spring Zuul...
2.3.2 Отслеживание ссылок
- 【рекомендовать】«Введение в SkyWalking для отслеживания ссылок Spring Cloud»
- "Тао-Роуд Весеннее Облако Связи Отслеживание Весеннего Облачного Сыщика"
2.3.3 Сервисный вызов + балансировка нагрузки
- «Введение в ленту балансировки нагрузки Spring Cloud Netflix»
- «Введение в Spring Cloud Declarative Call Feign»
3. Выбрать Spring Cloud или Dubbo?
Я считаю, что многие толстые друзья в основном столкнутся с проблемой, когда будут заниматься техническим выбором микросервисной архитектуры, особенно когда эта проблема возникает вПериод, когда Dubbo не обслуживается? На Zhihu также есть очень популярная дискуссионная ветка.Каковы преимущества и недостатки Spring Cloud и Dubbo? 》.
3.1 Выбрать систему Spring Cloud?
Предположим, сначала выбираем систему Spring Cloud, затем нам нужно подумать, какой пакет Spring Cloud выбрать. Вероятно, самым популярным на данный момент является пакет Spring Cloud Netflix, предоставляемый Netflix.
Но мир всегда так интересен, что Netflix начал сокращать свои инвестиции в открытый исходный код и постепенно перестал поддерживать свои компоненты:
- Netflix объявляет о прекращении разработки Hystrix
- «Объявлено о прекращении работы над открытым исходным кодом Eureka 2.0, продолжайте использовать на свой страх и риск»
- Netflix жертвует Feign дляOpenFeignСообщество
- Официальная команда Spring Cloud не рассматривает возможность предоставления поддержки Zuul 2, см.Zuul#ISSUE483
- Лента переходит в состояние обслуживания, виднаГлавная страница проекта ленты
Итак, приходит Spring Cloud NetflixРежим технического обслуживания,видимый"Spring Cloud Greenwich.RC1 уже доступен"Новости. Как показано ниже:
Что ж, Spring Cloud Netflix может быть не лучшим выбором. Тем не менее, в настоящее время в Spring Cloud нет других очень популярных пакетов, кажется, что на данный момент надежным является только пакет Spring Cloud Alibaba, предоставляемый Alibaba! существуетWanted: who's using Spring Cloud Alibaba, вы можете увидеть компании и команды, которые в настоящее время используют Spring Cloud Alibaba.
Кроме того, я слышал, что Spring Cloud Alibaba станет Spring Cloudвторое поколениеСтандарт реализован, но информации и новостей по этому поводу я не нашел.
3.2 Выберите Spring Cloud Alibaba или Dubbo?
На самом деле, Dubbo медленно эволюционировал из RPC-фреймворка вДуббо Экология,Как показано ниже:
FROM Хироши Ватанабэ.Apache.org/This-talent/Eco…
Очень богатые компоненты, которые мы видим в Spring Cloud Alibaba, обеспечивают соответствующую интеграцию в экосистему Dubbo. Итак, если посмотреть на это с этой точки зрения, выберете ли вы Spring Cloud Alibaba или систему Dubbo, это очень хороший выбор.
Если толстые друзья выбирают систему Dubbo, рекомендуется прочитать следующие статьи:
- «Введение в Spring Boot Dubbo»
- «Приступая к работе в центре регистрации Tao Dao Spring Boot Nacos»
- «Приступая к работе в центре конфигурации Tao Dao Spring Boot Nacos»
- «Введение в Sentinel для обеспечения отказоустойчивости службы Spring Boot»
- «Введение в очередь сообщений Spring Boot RocketMQ»
- «Введение в Seata с распределенными транзакциями Dubbo»
- «Введение в SkyWalking для отслеживания ссылок Spring Boot»
В настоящее время его команда выбрала Spring Boot + Dubbo в качестве общей архитектуры и рассматривает возможность постепенного перехода на Spring Cloud Alibaba. Основная причина заключается в том, что мы ориентируемся на B-side бизнес и должны учитыватьЧастное развертывание, а Spring Cloud реализовать проще, чем DubboПрозрачная миграция промежуточного ПО.
Например, для переноса Spring Cloud Stream RocketMQ на Spring Cloud Stream Kafka или Spring Cloud Stream RabbitMQ требуется только изменить файл конфигурации. Заинтересованные толстые друзья, вы можете сравнить и изучить следующие три статьи:
Рассказчик: В конце концов, при частном развертывании у другой стороны могут быть требования к тому, какие основные компоненты использовать.Он не любит RocketMQ и хочет очередь сообщений RabbitMQ.
Во многих случаях это преимущество JPA перед MyBatis.
- «Введение в очередь сообщений Spring Cloud Alibaba RocketMQ»
- «Введение в Spring Cloud Message Queue RabbitMQ»
- «Введение в Spring Cloud Message Queue Kafka»
666. Пасхальное яйцо
В будущем я открою свой собственный проект электронной коммерцииGitHub.com/YuNaiV/onemei…, переходя на архитектуру Spring Cloud Alibaba, толстые друзья могут стать звездой волны.
Кроме того, вGitHub.com/Y u — День V/SP…В проекте я буду продолжать обновлять больше статей о введении и практике Spring Cloud и Spring Cloud Alibaba, чтобы вы продолжали лысеть!
Учитывая, что некоторые толстые друзья правыМикросервисыПока нет общего понимания, и рекомендуется прочитать следующие статьи:
- «Руководство по выбору стека технологий Microservice 2.0»
- «Картинка для понимания микросервисной архитектуры Spring Cloud»
- «12 рисованных рисунков, понимаю микросервисную архитектуру»
- «Выбор Java Microservice Framework (Dubbo и Spring Cloud?)»
- "Что такое микросервисы? 》
- «Это правильная поза для микросервисного подразделения, этому стоит научиться! 》
Справочные статьи следующие: