SpringBoot + Dobbo + nacos

SpringBoot + Dobbo + nacos

一、nacos

  • https://nacos.io/zh-cn/docs/quick-start.html

1、下载安装包

  • https://github.com/alibaba/nacos/releases/
  • 下载后在主目录下,创建一个logs的文件夹:用来存日志
  • image-20240408162822800

2、启动nacos

  • image-20240408162939033
  • 在bin目录下打开cmd
  • 运行启动命令: startup.cmd -m standalone
    • image-20240408163201549
    • 这样即为运行成功

二、Dobbo

1、进入入门项目github

  • image-20240408132536537

2、拉取代码

  • image-20240408132645839

3、启动入门项目

  • image-20240408132802452

  • image-20240408132808690

  • image-20240408132936913

    • 因为这个示例代码是zookeeper的注册中心,我这配置的是nacos的注册中心
    • 所以我们提取关键配置即可

5、dubbo整合nacos

  • https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/reference-manual/registry/nacos/
5.1、在 提供者 和 调用者中 都添加依赖
  • 把zookeeper的依赖删除换上以下依赖
    
    
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo</artifactId>
        <version>3.0.9</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba.nacos</groupId>
      <artifactId>nacos-client</artifactId>
      <version>2.1.0</version>
    </dependency>
    
5.2、两个项目里都配置以下信息
  • yml配置信息

    • #把zookeeper的配置信息改为以下这个
        registry:
          id: nacos-registry
          address: nacos://localhost:8848
      
  • 启动dubbo

    • 启动类上添加注解: @EnableDubbo
  • 两者上面都创建接口(这里的案例是用了一个公共接口

    /**
     * 示例服务
     *
     */
    public interface DemoService {
    
        String sayHello(String name);
    
        String sayHello2(String name);
    
    }
  • 注意事项,接口所在的位置在,提供者和调用者的位置要一模一样

5.3、在提供者上实现接口
  /**
   * 示例服务实现类
   *
   */
  @DubboService
  public class DemoServiceImpl implements DemoService {
  
      @Override
      public String sayHello(String name) {
          return "Hello " + name;
      }
      @Override
      public String sayHello2(String name) {
          return name + "zzj";
      }
  }
5.4、在调用者上调用接口
  @Component
  public class Task implements CommandLineRunner {
      @DubboReference
      private DemoService demoService;
  
      @Override
      public void run(String... args) {
          String result1 = demoService.sayHello("world");
          String result2 = demoService.sayHello2("hello");
          System.out.println("Receive result1 ======> " + result1);
           System.out.println("Receive result2 ======> " + result2);
      }
  }

6、结果

  • 在调用者的控制台能看到输出的信息
  • 查看nacos里的注册信息也是注册上了
    • image-20240408172242173

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-13 22:20:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-13 22:20:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-13 22:20:02       82 阅读
  4. Python语言-面向对象

    2024-04-13 22:20:02       91 阅读

热门阅读

  1. WebKit结构简介

    2024-04-13 22:20:02       39 阅读
  2. 乌龟棋(c++实现)

    2024-04-13 22:20:02       39 阅读
  3. uniapp各种常用的提示框

    2024-04-13 22:20:02       33 阅读
  4. C++运算符重载

    2024-04-13 22:20:02       39 阅读
  5. 18. Linux API 编程预备知识

    2024-04-13 22:20:02       25 阅读
  6. 【应用】Spring-Bean注入-xml+注解

    2024-04-13 22:20:02       30 阅读
  7. skynet中newservice和uniqueservice的区别

    2024-04-13 22:20:02       34 阅读
  8. ChatGPT革新学术写作:论文撰写的新思路

    2024-04-13 22:20:02       41 阅读
  9. shell脚本启动jar包

    2024-04-13 22:20:02       34 阅读
  10. C语言隐藏执行其他程序

    2024-04-13 22:20:02       34 阅读
  11. openjudge_2.5基本算法之搜索_1756:八皇后

    2024-04-13 22:20:02       38 阅读
  12. 预训练的启蒙:浅谈BERT、RoBERTa、ALBERT、T5

    2024-04-13 22:20:02       37 阅读