Вводный курс Dubbo для начинающих

Даббо

Отношения между Dubbo и RPC

Dubbo  — это платформа распределенных сервисов с открытым исходным кодом, разработанная Alibaba. Он обеспечивает высокопроизводительную  связь RPC (удаленный вызов процедур) и возможности управления службами для приложений, позволяя приложениям быстро создавать высоконадежные и масштабируемые службы в распределенной среде. Основные функции Dubbo включают регистрацию и обнаружение сервисов, балансировку нагрузки, вызов сервисов и отказоустойчивость и т. д. Он подходит для общения на нескольких языках и в нескольких гетерогенных средах. Dubbo использует блокирующий ввод-вывод и пул потоков для достижения высокого параллелизма, а также поддерживает расширение нескольких протоколов и форматов сериализации. Его экосистема становится все более совершенной, а его пользовательское сообщество активным, он широко используется в веб-приложениях, корпоративном промежуточном программном обеспечении, больших данных и других областях.

Ядро Даббо

Ядро Dubbo включает в себя:

  • Удаленная связь: Dubbo предоставляет различные протоколы удаленной связи, такие как протокол Dubbo, протокол Http , протокол RMI и т. д. Среди них протокол Dubbo — это двоичный высокопроизводительный протокол связи RPC, поставляемый с Dubbo.Он имеет низкие издержки на сериализацию и десериализацию и подходит для связи служб с высокой степенью параллелизма и большими объемами данных.
  • Отказоустойчивость кластера: Когда потребители Dubbo инициируют вызовы службы, Dubbo предлагает различные стратегии отказоустойчивости кластера, такие как Failover, Failfast, Failsafe, Failback и т. д. Отказоустойчивость — это стандартная отказоустойчивая стратегия кластера Dubbo, которая автоматически переключается на другие доступные узлы для совершения вызовов, когда поставщик услуг совершает ошибку или истекает время ожидания, обеспечивая надежность вызова.
  • Автоматическое обнаружение: чтобы облегчить управление многими поставщиками услуг, Dubbo предоставляет центр регистрации в качестве инструмента централизованного управления для регистрации и обнаружения услуг. Dubbo поддерживает несколько реестров, таких как ZooKeeper, Redis, Consul, Etcd и т. д. Через центр регистрации потребители услуг могут автоматически обнаруживать доступных поставщиков услуг без ручной настройки адресов поставщиков услуг, что значительно снижает сложность обращений за услугами.

Разница между Dubbo и Spring Cloud

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

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

Углубленное понимание: сравнение фреймворка микросервисов: Spring Cloud и Dubbo

узел Даббо

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

Фреймворк Даббо

 Фреймворк Dubbo включает в себя:

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

Даббо сервис

Определение интерфейса Дуббо

Мы можем написать метод sayHello.

/** * xml方式服务提供者接口 */ public interface ProviderService { String SayHello(String word); }

Затем определите его класс реализации.

/** * xml方式服务提供者实现类 */ public class ProviderServiceImpl implements ProviderService{ public String SayHello(String word) { return word; } }

Затем импортируйте зависимости maven.

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ouyangsihai</groupId> <artifactId>dubbo-provider</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- https: //mvnrepository.com/artifact/com.alibaba/dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.6</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.10</version> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.5</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.32.Final</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.8.0</version> </dependency> </dependencies> </project>

Опубликовать интерфейс Dubbo

После написания интерфейса его необходимо опубликовать, чтобы к интерфейсу можно было получить доступ.

package com.sihai.dubbo.provider; import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.ProtocolConfig; import com.alibaba.dubbo.config.RegistryConfig; import com.alibaba.dubbo.config.ServiceConfig; import com.alibaba.dubbo.container.Main; import com.sihai.dubbo.provider.service.ProviderService; import com.sihai.dubbo.provider.service.ProviderServiceImpl; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.io.IOException; /** * xml方式启动 * */ public class App { public static void main( String[] args ) throws IOException { //加载xml配置文件启动 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/provider.xml"); context.start(); System.in.read(); // 按任意键退出 } }

Запустите службу Дуббо

Последнее, что нужно сделать, это запустить службу Dubbo.Если вы видите следующий журнал, это означает, что запуск прошел успешно.

Расширение знаний:

 

рекомендация

отblog.csdn.net/m0_71808387/article/details/131573506