Управление Dubbo: изучение его основных концепций и выдающихся функций для модернизации распределенных систем.

1. Введение в Даббо

Apache Dubbo — это среда разработки службы RPC, которая используется для решения проблем управления службами и связи в рамках микросервисной архитектуры.Он официально предоставляет многоязычные реализации SDK, такие как Java и Golang. Микросервисы, разработанные с использованием Dubbo, имеют встроенные возможности удаленного обнаружения адресов и связи друг с другом.Используя богатые функции управления сервисами, предоставляемые Dubbo, можно реализовать такие требования к управлению сервисами, как обнаружение сервисов, балансировка нагрузки и планирование трафика. Dubbo обладает высокой масштабируемостью, и пользователи могут легко реализовать различные пользовательские логические схемы для перехвата трафика и выбора местоположения.

В эпоху облачных технологий компания Dubbo успешно разработала Dubbo3, Proxyless Mesh и другие архитектуры и решения, а также провела всесторонние обновления в нескольких основных направлениях, таких как простота использования, сверхкрупномасштабная практика микросервисов, адаптация облачной инфраструктуры и т. д. и безопасность.

2. Даббо, что он умеет?

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

Dubbo может помочь решить следующие проблемы с микросервисами:

  • Парадигмы и инструменты программирования микросервисов

Dubbo поддерживает определения сервисов на основе IDL или методов, зависящих от языка, и предоставляет различные формы вызова сервисов (такие как синхронный, асинхронный, потоковый и т. д.).

  • Высокопроизводительная связь RPC

Dubbo помогает решать проблемы со связью между компонентами микросервиса, предоставляет различные реализации высокопроизводительных протоколов связи на основе HTTP, HTTP/2, TCP и т. д., а также поддерживает расширения протокола сериализации для управления сетевыми подключениями, передачи данных и т. д. Основной вопрос .

  • Мониторинг и управление микросервисами

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

  • Развертывание в различных средах

Сервисы Dubbo можно напрямую развернуть в нескольких архитектурах, таких как контейнеры, Kubernetes и Service Mesh.

  • активное сообщество

Проект Dubbo размещен в сообществе Apache. Существует более 10 экологических проектов, поддерживаемых активными международными и местными участниками. В число участников входят технические эксперты из-за рубежа, Alibaba, Industrial and Commercial Bank of China, Ctrip, Ant, Tencent и другие известные известные предприятия, чтобы обеспечить своевременную работу Dubbo. Устранение дефектов проекта, требований и уязвимостей безопасности, а также отслеживание последних тенденций развития технологий в отрасли.

  • огромная пользовательская база

Dubbo3 успешно заменил инфраструктуру HSF в Alibaba и добился полной реализации, став единой инфраструктурой услуг Alibaba Group для облачной эпохи.Огромная группа пользователей является основой для Dubbo для поддержания стабильности, источников спроса и продвижения.

3. Почему стоит выбрать Дуббо?

  • Быстрое начало работы, позволяющее разработчикам сосредоточиться на развитии бизнеса

Многоязычный SDK определяет парадигму разработки микросервисов, гибкое переключение протоколов связи и поддерживает любой протокол, например HTTP/2, gRPC, REST, Thrift и TCP.

  • Управление услугами, мониторинг в режиме реального времени и контроль состояния кластера

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

  • Сверхвысокая производительность, предназначенная для кластеров из миллионов экземпляров

Alibaba работает на Dubbo с миллионами экземпляров и триллионами вызовов каждый год во время Double 11. С самого начала проектирования главными приоритетами являются низкая задержка, высокая пропускная способность и масштабируемость.

  • Решения корпоративного уровня, годы проверки производственной среды предприятия

Группы пользователей охватывают все сферы жизни, типичными представителями являются Промышленный и коммерческий банк Китая, Ctrip, Haier, Kingdee, поставщики облачных услуг (Alibaba Cloud, Tencent Cloud, Huawei Cloud) и т. д. В 2022 году Dubbo3 полностью заменил HSF в Alibaba на получить единую структуру.

4. Основные концепции и архитектура

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

  • Поверхность управления управлением услугами. Плоскость управления управлением услугами не относится конкретно к одному конкретному компоненту, такому как центр регистрации, а является абстрактным выражением системы управления Dubbo. Плоскость управления включает в себя центр регистрации для координации обнаружения сервисов, политик управления трафиком, консоль администратора Dubbo и т. д. Если используется архитектура Service Mesh, она также включает плоскости управления сервисной сеткой, такие как Istio.
  • Плоскость данных Даббо. Плоскость данных представляет собой все процессы Dubbo, развернутые в кластере, а обмен данными между процессами осуществляется по протоколу RPC.Dubbo определяет спецификации разработки и вызова микросервисных приложений и отвечает за завершение кодирования и декодирования передачи данных.
    • Потребитель службы (Dubbo Consumer), процесс Dubbo, который инициирует деловые вызовы или RPC-связь.
    • Поставщик услуг (Dubbo Provider), процесс Dubbo, который принимает деловые вызовы или сообщения RPC.

6. Протокол связи

Dubbo не привязан к какому-либо конкретному коммуникационному протоколу по своей конструкции.Среда Dubbo может обеспечить поддержку практически всех основных коммуникационных протоколов, таких как HTTP/2, REST, gRPC, JsonRPC, Thrift и Hessian2. Такой шаблон проектирования протокола обеспечивает наибольшую гибкость для создания микросервисов. Разработчики могут выбирать различные протоколы связи в соответствии со своими потребностями, такими как производительность и общий тип. Dubbo реализует миграцию между различными протоколами.

Протокол Dubbo предназначен для поддержки расширений.Вы можете адаптировать внутренний частный протокол к среде Dubbo, а затем подключить частный протокол к системе Dubbo, чтобы воспользоваться опытом разработки Dubbo и возможностями управления службами. Например, Alibaba, типичный пользователь Dubbo3, реализовал общий перенос внутренней инфраструктуры HSF на платформу Dubbo3, расширив поддержку протокола HSF.

Dubbo также поддерживает работу с несколькими протоколами. Вы можете использовать несколько протоколов на одном порту. Dubbo Server может автоматически идентифицировать запрос и обеспечивать его правильную обработку. Вы также можете опубликовать один и тот же сервис RPC на разных портах (протоколах) для разных технологических стеков. службы вызывающего абонента.

Dubbo предоставляет две встроенные высокопроизводительные реализации протокола Dubbo2 и Triple (совместимые с gRPC) для удовлетворения потребностей некоторых пользователей микросервисов в высокопроизводительной связи.Оба они изначально были разработаны и созданы во внутренних бизнес-сценариях высокопроизводительной связи Alibaba.

  • Протокол Dubbo2 — это двоичный протокол связи, разработанный поверх протокола транспортного уровня TCP.
  • Triple — это коммуникационный протокол, поддерживающий режим потоковой передачи на основе HTTP/2, а Triple полностью совместим с gRPC, но сделано больше оптимизаций в соответствии с характеристиками фреймворка Dubbo.

В целом поддержка протоколов связи в Dubbo имеет следующие характеристики:

  • Не привязан к протоколу связи
  • Обеспечить высокопроизводительную реализацию протокола связи
  • Поддерживает потоковую модель связи
  • Не связывает протокол сериализации
  • Поддерживает мультипротокольную экспозицию одной службы
  • Поддержка однопортовой многопротокольной публикации
  • Поддержка нескольких сервисов в одном приложении с использованием разных протоколов связи

7. Управление сервисом Дуббо

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

Ниже приведена схема основного принципа работы механизма обнаружения служб Dubbo:

Обнаружение службы включает в себя три роли: поставщик, потребитель и реестр. Среди них экземпляр поставщика Dubbo регистрирует URL-адрес в реестре, а реестр отвечает за агрегирование данных. Потребители Dubbo читают список адресов из реестра и подписываются на изменения. , при каждом изменении списка адресов реестр уведомляет все подписанные экземпляры потребителей о последнем списке.

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

Абстракция управления услугами

Ниже показано определение основных функций управления услугами Dubbo.

  • обнаружение адреса

Обнаружение службы Dubbo имеет преимущества высокой производительности, поддержки крупномасштабных кластеров и настройки метаданных на уровне службы. По умолчанию он предоставляет Nacos, Zookeeper, Consul и другие адаптации реестра. Он подключается к моделям Spring Cloud и Kubernetes Service и поддерживает пользовательские расширения.

  • Балансировка нагрузки

По умолчанию Dubbo предоставляет такие политики, как взвешенный случайный выбор, взвешенный циклический перебор, сначала наименее активные запросы, сначала самое короткое время ответа, последовательное хеширование и адаптивная загрузка.

  • маршрутизация трафика

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

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

Dubbo официально предоставляет полную поддержку отслеживания ссылок для Tracing, адаптируя OpenTelemetry, и пользователи могут получить доступ к продуктам, поддерживающим стандарт OpenTelemetry, таким как Skywalking, Zipkin и т. д. Кроме того, многие сообщества, такие как Skywalking, Zipkin и т. д., также предоставляют адаптации Dubbo на официальном сайте.

  • Наблюдаемость

Инстансы Dubbo сообщают QPS, RT, время запросов, процент успешных попыток, время исключений и другие многомерные наблюдаемые индикаторы через Prometheus, чтобы помочь понять статус работы службы и помочь реализовать визуальное отображение индикаторов данных через доступ к Grafana и консоли администратора.

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

Даббо Админ

Консоль администратора обеспечивает визуальное представление кластера Dubbo, через администратора вы можете выполнять почти все управление и контроль над кластером.

  • Запросить статус службы, приложения или машины
  • Создание проектов, тестирование услуг, документооборот и т. д.
  • Просмотр трафика кластера в режиме реального времени, обнаружение ненормальных проблем и т. д.
  • Выдача правил управления трафиком, таких как распределение коэффициента трафика и маршрутизация параметров

сервисная сетка

Подключите Dubbo к системам управления сетью обслуживания, таким как Istio.

8. Экология микросервисов

Сообщество Dubbo и многие превосходные проекты с открытым исходным кодом установили богатую экологическую поддержку микросервисов вокруг Dubbo, что позволяет разработчикам выбирать Dubbo в качестве среды разработки с первого дня, не беспокоясь о последующих требованиях к управлению сервисом.Dubbo поддерживает все распространенные проблемы. решения класса.

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

================================

Если статья была вам полезна, пожалуйста, не забудьте добавить внимание и поставить лайк!

Supongo que te gusta

Origin blog.csdn.net/citywu123/article/details/131305537
Recomendado
Clasificación