Убей Весеннее Облако Нетфликс! Я выбираю Spring Cloud Alibaba

Java задняя часть
Убей Весеннее Облако Нетфликс! Я выбираю Spring Cloud Alibaba

Внезапно я обнаружил, что не писал на этой неделе.

В метро вдруг понял.

Так что он был нахальным, достал свой компьютер и сделал 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 Common 图

Затем разныеПроизводительв сочетании со своимпромежуточное ПО, предоставляя собственное 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 официально предоставляет конкретную реализацию некоторых функций, хе-хе. Например:

Ниже мы организуем официальных представителей Spring Cloud, Netflix и Alibaba в следующую таблицу:

Spring Cloud 技术栈整理

2. Комплект Spring Cloud Alibaba

Spring Cloud Alibabaкомплект, алиОткрытый исходный кодКомпоненты, Облако AlibabaБизнесКомпоненты интегрированы в систему Spring Cloud и одновременно интегрируют Spring Cloud Gateway, OpenFeign, Ribbon и т. д. Все показано на рисунке ниже:

Spring Cloud Alibaba 全景图

Мы можем использовать пакет Spring Cloud Alibaba вКомпоненты с открытым исходным кодом Алиа такжеОблачные бизнес-компоненты AlibabaСгруппированы в следующую сравнительную таблицу:

开源 V.S. 商业

Основные функции следующие:

  • Регистрация и обнаружение службы: адаптируйтесь к стандартам регистрации и обнаружения сервисов 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: платформа динамического обнаружения служб, управления конфигурацией и управления службами, упрощающая создание облачных приложений.

2.1.2 Dubbo

Dubbo: Apache Dubbo™ — это высокопроизводительная платформа Java RPC.

2.1.3 Sentinel

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

2.1.4 RocketMQ

RocketMQ: Распределенная система обмена сообщениями с открытым исходным кодом, основанная на технологии распределенных кластеров с высокой доступностью, предоставляет услуги публикации сообщений и подписки с низкой задержкой и высокой надежностью.

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

2.3.2 Отслеживание ссылок

2.3.3 Сервисный вызов + балансировка нагрузки

3. Выбрать Spring Cloud или Dubbo?

Я считаю, что многие толстые друзья в основном столкнутся с проблемой, когда будут заниматься техническим выбором микросервисной архитектуры, особенно когда эта проблема возникает вПериод, когда Dubbo не обслуживается? На Zhihu также есть очень популярная дискуссионная ветка.Каковы преимущества и недостатки Spring Cloud и Dubbo? 》.

3.1 Выбрать систему Spring Cloud?

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

Но мир всегда так интересен, что Netflix начал сокращать свои инвестиции в открытый исходный код и постепенно перестал поддерживать свои компоненты:

Итак, приходит Spring Cloud NetflixРежим технического обслуживания,видимый"Spring Cloud Greenwich.RC1 уже доступен"Новости. Как показано ниже:

Spring Cloud Netflix 维护模式

Что ж, 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…

Dubbo 生态

Очень богатые компоненты, которые мы видим в Spring Cloud Alibaba, обеспечивают соответствующую интеграцию в экосистему Dubbo. Итак, если посмотреть на это с этой точки зрения, выберете ли вы Spring Cloud Alibaba или систему Dubbo, это очень хороший выбор.

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

В настоящее время его команда выбрала 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.

666. Пасхальное яйцо

В будущем я открою свой собственный проект электронной коммерцииGitHub.com/YuNaiV/onemei…, переходя на архитектуру Spring Cloud Alibaba, толстые друзья могут стать звездой волны.

Кроме того, вGitHub.com/Y u — День V/SP…В проекте я буду продолжать обновлять больше статей о введении и практике Spring Cloud и Spring Cloud Alibaba, чтобы вы продолжали лысеть!

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

Справочные статьи следующие: