Обмен технологиями

Spring Cloud Alibaba — страж трафика распределенной системы

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Вставьте сюда описание изображения

Оглавление

Обзор

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

Вкратце, Sentinel — это компонент управления трафиком, эквивалентный Spring Cloud Circurk Breaker.

особенность

  • Богатые сценарии применения: Sentinel взял на себя основные сценарии продвижения трафика Double Eleven от Alibaba за последние 10 лет, такие как флэш-продажи (то есть пакетный трафик контролируется в диапазоне, который может выдержать пропускная способность системы), снижение пиковой нагрузки сообщений. и заполнение долин, и контроль трафика кластера, объединение недоступных нижестоящих приложений в реальном времени и т. д.
  • Полный мониторинг в реальном времени: Sentinel также предоставляет функции мониторинга в реальном времени. В консоли вы можете увидеть данные второго уровня отдельной машины, подключенной к приложению, и даже сводный статус работы кластера, состоящего менее чем из 500 машин.
  • Обширная экосистема с открытым исходным кодом: Sentinel предоставляет готовые модули интеграции с другими платформами/библиотеками с открытым исходным кодом, такими как интеграция со Spring Cloud, Apache Dubbo, gRPC и Quarkus. Вам нужно всего лишь ввести соответствующие зависимости и выполнить простую настройку для быстрого подключения к Sentinel. В то же время Sentinel предоставляет собственные реализации на нескольких языках, таких как Java/Go/C.
  • Полный механизм расширения SPI: Sentinel предоставляет простой в использовании и полный интерфейс расширения SPI. Вы можете быстро настроить логику, реализовав интерфейсы расширения. Например, индивидуальное управление правилами, адаптация динамических источников данных и т. д.

Основные возможности Sentinel:
Вставьте сюда описание изображения

основная концепция

ресурс

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

Пока код, определенный через Sentinel API, является ресурсом, он может быть защищен с помощью Sentinel. В большинстве случаев вы можете использовать сигнатуры методов, URL-адреса или даже имена служб в качестве имен ресурсов для идентификации ресурсов.

правило
Правила, установленные для состояния ресурсов в реальном времени, могут включать правила управления потоками, правила деградации автоматического выключателя и правила защиты системы. Все правила можно динамически корректировать в режиме реального времени. (Правила можно установить в консоли Sentinel, конфигурации yml и коде Java)

Установить Сентинел

Использование Sentinel можно разделить на две части:

  • Базовая библиотека (Java-клиент): не зависит от какой-либо платформы/библиотеки и может работать на Ява 8 и вышеверсия среды выполнения, а также имеет хорошую поддержку таких фреймворков, как Dubbo/Spring Cloud.
  • Панель мониторинга: Панель мониторинга в основном отвечает за управление правилами push, мониторинг и управление информацией о машине.

Путь загрузки:https://github.com/alibaba/Sentinel/releases

После загрузки найдите jar-пакет и выполните команду для запуска консоли Sentinel.

java -jar sentinel-dashboard-xxx.jar

В локальной среде должна быть версия jdk8 или выше, а порт 8080 не занят (консольный порт Sentinel).
Начиная с версии Sentinel 1.6.0, в консоли Sentinel представлены основные функции входа в систему. Имя пользователя и пароль по умолчанию — URL-адрес доступа Sentinel: http://localhost:8080.
Вставьте сюда описание изображения

Кейс внедрения Sentinel в микросервисы

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

Введение зависимостей