当前位置:   article > 正文

2023年最新:Dubbo整合Spring Boot 开发微服务应用Demo,“官网案例”详解_dubbo微服务 demo

dubbo微服务 demo

一、目标

从“”上手开发基于 Dubbo x Spring Boot 的微服务开发,了解 Dubbo x Spring Boot 配置方式。

二、环境要求

  • 系统:Windows、Linux、MacOS

  • JDK 8 及以上(推荐使用 JDK17

  • Git

  • IntelliJ IDEA(可选)

  • Docker (可选)

三、项目介绍

在本任务中,将分为 3 个子模块进行独立开发,模拟生产环境下的部署架构。

  1. . // apache/dubbo-samples/1-basic/dubbo-samples-spring-boot
  2. ├── dubbo-samples-spring-boot-interface // 共享 API 模块
  3. ├── dubbo-samples-spring-boot-consumer // 消费端模块
  4. └── dubbo-samples-spring-boot-provider // 服务端模块

四、快速上手开发,实现初级Demo

1、先从官网clone代码下来,项目地址如下,直接clone即可,默认是主分支

GitHub - apache/dubbo-samples: samples for Apache Dubbo
2、接下来需要学习的步骤如同官网一样,直接按官网走,下面是链接:


        3 - Dubbo x Spring Boot 开发微服务应用 | Apache Dubbo

文章一直往下翻,从这往下看:

 如果你看完整篇文章,其他步骤估计大家都可以理解,但是唯独第一步,启动注册中心,官方给的是zookeeper,提供了一个基于 Apache Zookeeper 注册中心的简易启动器,这个就有点麻烦,官方给的命令我IDEA是跑不起来的,我换个方法,如下:

 打开maven 管理,进行如下操作:

 接下来zookeeper就启动啦:

 这样一个简易的zookeeper注册中心就启动起来了,之后的操作我们直接运行官方给的生产者消费者的代码,运行各自的Application即可。

运行 生产者provider

 运行消费者 consumer

五、代码讲解

1、在interface模块下定义一个接口provider模块下的实现该接口,代码如下:

上面使用注解: @DubboService  //表示这个是注册到注册中心,可以远端调用的服务实现类

  1. @DubboService
  2. public class DemoServiceImpl implements DemoService {
  3. @Override
  4. public String sayHello(String name) {
  5. return "Hello " + name;
  6. }
  7. }

 2、在consumer模块下,通过@DubboReference 注解实现接口注入,然后就可以在下面通过远端调用的方式,调用其方法!

这里是创建一个进行,不断执行:隔1s调用打印一次。

  1. @Component
  2. public class Task implements CommandLineRunner {
  3. @DubboReference
  4. private DemoService demoService;
  5. @Override
  6. public void run(String... args) throws Exception {
  7. String result = demoService.sayHello("world");
  8. System.out.println("Receive result ======> " + result);
  9. new Thread(()-> {
  10. while (true) {
  11. try {
  12. Thread.sleep(1000);
  13. System.out.println(new Date() + " Receive result ======> " + demoService.sayHello("world"));
  14. } catch (InterruptedException e) {
  15. e.printStackTrace();
  16. Thread.currentThread().interrupt();
  17. }
  18. }
  19. }).start();
  20. }
  21. }

运行展示:

文章到这里就结束啦,希望大家都能明白我这种讲法,觉得不错的话点个赞吧~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/57745
推荐阅读
相关标签
  

闽ICP备14008679号