Знакомство с Даббо
Dubbo — это платформа с открытым исходным кодом для Alibaba.высокая производительностьОтличная сервисная структура позволяет приложениямRPCРеализовать функции вывода и ввода сервиса, которые можно комбинировать сФреймворк Spring легко интегрируется.
Он предоставляет три основные возможности:
- ориентированный на интерфейсудаленный вызов метода
- Интеллектуальная отказоустойчивостьа такжебалансировки нагрузки
- Служитьавтоматическая регистрацияи открытие.
Видно, что на рисунке пять ролей:
- Провайдер: поставщик услуг
- Потребитель: потребитель услуг
- Реестр: Сервисный реестр
- Монитор: Центр мониторинга услуг
- Контейнер: Контейнер, в котором работает служба.
Процесс на схеме можно пояснить следующим образом:
- Провайдер, запускающий службу в контейнере (Container)
- Поставщик услуг (Provider) регистрирует услугу в виде интерфейса с реестром (Registry)
- Потребитель услуги (Consumer) подписывается на услугу в реестре
- Реестр возвращает интерфейс службы, предоставленный поставщиком службы, потребителю службы (асинхронно).
- Потребитель услуги звонит поставщику услуги (синхронно)
- Центр мониторинга отвечает за службу журнала, которая подсчитывает время вызова и время вызова службы.
Здесь мы используемzookeeperВ качестве сервисного реестра я проверяю официальную документацию и нахожуRedisТакже его можно использовать как центр регистрации Dubbo, но в приложениях он встречается относительно редко, и в официальной документации также указано:
Если мы хотим использовать его, нам просто нужно поставить
dubbo.registry.addrss
Значение изменяется наredis://127.0.0.1:6379
готовые к использованию.
Теория здесь, давайте вступим в настоящую битву~
Установка зоопарка
Здесь я устанавливаю в среде Mac OS, вы можете установить виртуальную машину локально, чтобы завершить эту операцию.
Сначала нам нужно пойти вОфициальный сайтЗагрузите установочный пакет.
# 0. 解压
tar -zxvf zookeeper-3.4.13.tar.gz
# 1. 切换到解压后的目录下
cd zookeeper-3.4.13/
# 2. 建立data和logs目录
mkdir data
mkdir logs
# 3. 复制zoo_sample.cfg 为 zoo.cfg
cd conf/
cp zoo_sample.cfg zoo.cfg
# 4. 修改配置
vi zoo.cfg
dataDir=刚刚新建的data目录的绝对路径
logDir=刚刚新建的data目录的绝对路径
# 5. 启动
cd ../bin
./zkServer.sh start
# 6. 检测是否启动成功
./zkServer.sh status
Пример
Написать провайдера
Введите зависимости Maven, необходимые для нашего проекта:
<! --这里的包不要写错了,我试了一下阿里的starter,发现有很多问题,并没有这个好用 -->
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
Затем настройте экспозицию пакетов реестра и сервисного интерфейса.
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=27899
spring.dubbo.scan=indi.viyoung.dubbo.provider.service
написатьService
Интерфейс и класс реализации:
public interface TestService {
String test();
}
@Service
public class TestServiceImpl implements TestService {
@Override
public String test() {
return "Hello Wolrd";
}
}
Обратите внимание, что здесьService
Аннотация должна находиться под пакетом dubbo, но не ошибитесь!
Написать потребителю
Также импортируйте зависимости:
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
Конфигурация Consumer относительно невелика:
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
Ссылка непосредственно в контроллере
public class TestController {
@Reference
private TestService testService;
@RequestMapping()
public String hello() {
return testService.test();
}
}
Обратите внимание здесь@Reference
Не ошибитесь в аннотации, она должна быть под пакетом Dubbo!
Затем, после запуска проекта, давайте посетим:
Здорово, визит удался!
Далее давайте изучим использование Dubbo-Admin
Dubbo-Admin
Dubbo-Admin дал мне ощущение, что пользовательского интерфейса нет:
Выглядит это так, некрасиво, но я не знаю, когда его потихоньку обновили, и по контролю номинала стало очень удовлетворительно, и поддерживает запуск jar-пакетов, так что Tomcat отдельно ставить не надо~git clone https://github.com/apache/incubator-dubbo-ops.git
Сначала вытащите проект из Git и откройте его с помощью IDEA:
Просто добавьте конфигурацию номера порта, а затем используйте инструмент упаковки maven слева для упаковки:
Затем перейдите в целевой каталог dubbo-admin-server и используйте следующую команду:
java -jar dubbo-admin-server-0.1.jar >run.log &
Затем откройте браузер и введите localhost:7070.
По сравнению с предыдущим UI он в несчётное количество раз сильнее, и это очень удобно!
Конкретные функции можно обсудить после операции, и здесь они обсуждаться не будут.