Nacos 的使用笔记
Posted 上码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了 Nacos 的使用笔记相关的知识,希望对你有一定的参考价值。
Nacos 官网:https://nacos.io/zh-cn/ 官网中有 Nacos 比较详细的文档与其版本描述
Nacos 下载与使用
github 打开即是 nacos 的源码,下载下来(源码分析时使用)
https://github.com/alibaba/nacos/releases/tag/1.4.2 在此链接根据操作系统下载 nacos 的编译好的包,如图
在解压好的文件夹 bin 中使用 startup.cmd 启动(windows),在cmd 使用命令 startup.cmd -m standalone , 如图所示启动成功
访问 nacos : http://127.0.0.1:8848/nacos 使用默认账号:nacos ,密码:nacos 登录 nacos 后台页面
后台页面,常用的配置管理与服务管理,如图所示其中:provider-config 是我新建的,后面会用到
客户端服务创建
创建一个 provider-service 来提供服务
项目为 Springboot 项目,由于创建的 web 项目为 webflux 可能与传统的 web 引入feign 不一样,故用 web 项目的 pom 文件导入正常 feign 即可,
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>
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>
service-provider 提供接口:
consumer-service 通过 feign 消费provider-service提供接口
service-provider 配置文件:
-
spring:
cloud:
nacos:
discovery:
http://localhost:8848 :
# nacos 配置中心配置
config:
http://localhost:8848 :
yml :
name: provider-config
true :
application:
name: service-provider
profiles:
active: dev
server:
port: 9001
service-consumer 配置文件
-
spring:
cloud:
nacos:
discovery:
http://localhost:8848 :
application:
name: service-consumer
server:
port: 9002
启动服务,请求接口
nacos 管理后台可见,服务均注册上去
调用 service-consumer 通过feign请求 service-provider,从响应结果可以看出请求成功
读取 nacos 配置,在 service-provider 添加如下代码:
@Value("${phone}") private String phone; @GetMapping("/phone") public Mono getPhone(){ return Mono.just(phone); }
对照上述 service-provider 配置文件配置的 spring.cloud.nacos.config.file-extension=yml,spring.cloud.nacos.config.name=provider-config,在nacos后台创建后缀为 yml 名称为 provider-config 的文件
创建完后,重启serviec-provider,请求 service-provider 新增接口,响应结果如图,可见成功读取配置
修改 provider-config 配置 phone: 456 再次请求接口,响应结果如何,可见服务会即时读取更新配置
常见问题汇总
springboot 版本与 nacos 源码中引入的 springboot 版本尽量一致,否则可能会启动报错
配置文件移入 nacos 后,得将 application.properties 修改成 bootstrap.properties ,否则会不读 application.properties
以上是关于 Nacos 的使用笔记的主要内容,如果未能解决你的问题,请参考以下文章
Nacos学习笔记 Nacos整合SpringCloud流程