赞
踩
从“零”上手开发基于 Dubbo x Spring Boot 的微服务开发,了解 Dubbo x Spring Boot 配置方式。
在本任务中,将分为 3 个子模块进行独立开发,模拟生产环境下的部署架构。
- . // apache/dubbo-samples/1-basic/dubbo-samples-spring-boot
- ├── dubbo-samples-spring-boot-interface // 共享 API 模块
- ├── dubbo-samples-spring-boot-consumer // 消费端模块
- └── dubbo-samples-spring-boot-provider // 服务端模块
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 //表示这个是注册到注册中心,可以远端调用的服务实现类
- @DubboService
- public class DemoServiceImpl implements DemoService {
-
- @Override
- public String sayHello(String name) {
- return "Hello " + name;
- }
- }
2、在consumer模块下,通过@DubboReference 注解实现接口注入,然后就可以在下面通过远端调用的方式,调用其方法!
这里是创建一个进行,不断执行:隔1s调用打印一次。
- @Component
- public class Task implements CommandLineRunner {
- @DubboReference
- private DemoService demoService;
-
- @Override
- public void run(String... args) throws Exception {
- String result = demoService.sayHello("world");
- System.out.println("Receive result ======> " + result);
-
- new Thread(()-> {
- while (true) {
- try {
- Thread.sleep(1000);
- System.out.println(new Date() + " Receive result ======> " + demoService.sayHello("world"));
- } catch (InterruptedException e) {
- e.printStackTrace();
- Thread.currentThread().interrupt();
- }
- }
- }).start();
- }
- }

运行展示:

文章到这里就结束啦,希望大家都能明白我这种讲法,觉得不错的话点个赞吧~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。