Nacos 的使用笔记

Posted 上码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了 Nacos 的使用笔记相关的知识,希望对你有一定的参考价值。

  1. Nacos 官网:https://nacos.io/zh-cn/  官网中有 Nacos 比较详细的文档与其版本描述

  2. Nacos 下载与使用

    1. github 打开即是 nacos 的源码,下载下来(源码分析时使用)

    2. https://github.com/alibaba/nacos/releases/tag/1.4.2 在此链接根据操作系统下载 nacos 的编译好的包,如图

    3. 在解压好的文件夹 bin 中使用 startup.cmd 启动(windows),在cmd 使用命令 startup.cmd -m standalone , 如图所示启动成功(1) Nacos 的使用笔记

    4. 访问 nacos : http://127.0.0.1:8848/nacos 使用默认账号:nacos ,密码:nacos 登录 nacos 后台页面

    5. 后台页面,常用的配置管理与服务管理,如图所示(1) Nacos 的使用笔记其中:provider-config 是我新建的,后面会用到

  3. 客户端服务创建

    1. 创建一个 provider-service 来提供服务

    2. 项目为 Springboot 项目,由于创建的 web 项目为 webflux 可能与传统的 web 引入feign 不一样,故用 web 项目的 pom 文件导入正常 feign 即可,

      1. service-provider 引入依赖如下:
                            

         <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency>
        <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> <scope>test</scope> </dependency>
        <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.3.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.3.RELEASE</version> </dependency> </dependencies>
      2. service-consumer 与 serivce-provider 依赖保持一下的情况,增一个feign依赖,如下:

        <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency>
        <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> <scope>test</scope> </dependency>
        <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.3.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.3.RELEASE</version> </dependency>
        <dependency> <groupId>com.netflix.archaius</groupId> <artifactId>archaius-core</artifactId> <version>0.7.1</version> </dependency>
        <!-- feign --> <dependency> <groupId>com.playtika.reactivefeign</groupId> <artifactId>feign-reactor-webclient</artifactId> <version>2.0.15</version> </dependency> <dependency> <groupId>com.playtika.reactivefeign</groupId> <artifactId>feign-reactor-cloud</artifactId> <version>2.0.15</version> </dependency> <dependency> <groupId>com.playtika.reactivefeign</groupId> <artifactId>feign-reactor-spring-configuration</artifactId> <version>2.0.15</version> </dependency> <dependency> <groupId>com.netflix.feign</groupId> <artifactId>feign-slf4j</artifactId> <version>8.18.0</version> </dependency> </dependencies>
    3. service-provider 提供接口:(1) Nacos 的使用笔记

    4. consumer-service 通过 feign 消费provider-service提供接口      
      (1) Nacos 的使用笔记
      (1) Nacos 的使用笔记

    5. service-provider 配置文件:                                                     

      spring: cloud: nacos: discovery: server-addr: http://localhost:8848      # nacos 配置中心配置      config: server-addr: http://localhost:8848 file-extension: yml name: provider-config refresh-enabled: true application: name: service-provider profiles: active: devserver: port: 9001
    6. service-consumer 配置文件

      spring: cloud: nacos: discovery: server-addr: http://localhost:8848 application: name: service-consumer
      server: port: 9002
  4. 启动服务,请求接口

    1. nacos 管理后台可见,服务均注册上去
      (1) Nacos 的使用笔记

    2. 调用 service-consumer 通过feign请求 service-provider,从响应结果可以看出请求成功(1) Nacos 的使用笔记

  5. 读取 nacos 配置,在 service-provider 添加如下代码:

    1. @Value("${phone}")    private String phone;    @GetMapping("/phone")    public Mono getPhone(){        return Mono.just(phone);    }

    2. 对照上述 service-provider 配置文件配置的 spring.cloud.nacos.config.file-extension=yml,spring.cloud.nacos.config.name=provider-config,在nacos后台创建后缀为 yml 名称为 provider-config 的文件
      (1) Nacos 的使用笔记

    3. 创建完后,重启serviec-provider,请求 service-provider 新增接口,响应结果如图,可见成功读取配置

    4. 修改 provider-config 配置 phone: 456 再次请求接口,响应结果如何,可见服务会即时读取更新配置

  6. 常见问题汇总

    1. springboot 版本与 nacos 源码中引入的 springboot 版本尽量一致,否则可能会启动报错

    2. 配置文件移入 nacos 后,得将 application.properties 修改成 bootstrap.properties ,否则会不读 application.properties

以上是关于 Nacos 的使用笔记的主要内容,如果未能解决你的问题,请参考以下文章

Nacos使用笔记

Nacos学习笔记 服务发现基础应用

Nacos学习笔记 服务发现基础应用

Nacos学习笔记 Nacos整合SpringCloud流程

Nacos学习笔记 Nacos整合SpringCloud流程

Nacos笔记:Nacos的应用