文章目录
- 1、测试项目
- 2、项目注意事项
- 3、 测试核心功能
- 3.1 测试服务调用与负载均衡
- 3.2 测试配置监听
- 4、参考文档
1、测试项目
项目地址
nacos-service-a
nacos-service-b
2、项目注意事项
- 项目初始化可以使用aliyun spring initializer ,以更方便的使用springcloud alibaba的最新微服务组件(避免一些麻烦如springboot springcloud alibaba的版本匹配),网页下载导入或修改IDEA 的默认spring initializer均可
- 这里选用了springboot3,有一些注意点:需要较高的IDEA 2021+,jdk用的open jdk17,javax相关包改为jakarta的
- 微服务调用这里直接用RestTemplate,没有引入原spring cloud的open-feign组件,但还是无法避免需要使用原spring cloud的
spring-cloud-starter-loadbalancer
组件(因为没有配置原生spring cloud 大pom,需要指定一下版本号),否则nacos-service-b调用nacos-service-a无法解析域名UnknownHostException
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client 2.2.1版本无法兼容-->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.3.0-BETA</version>
</dependency>
</dependencies>
</dependencyManagement>
- 如上引入的springcloud alibaba引入的nacos-client版本是2.2.1,并不能兼容nacos-server 2.3.0BATA,故需要锁定nacos-client的版本为2.3.0-BETA
3、 测试核心功能
3.1 测试服务调用与负载均衡
nacos-service-b(只启动一个实例)的http://localhost:9000/remote-port
接口远程调用nacos-service-a(启动了两个实例,注意配置文件配置的springboot动态端口server.port=${random.int(8000,8005)}
)的/port
接口 (默认为轮询负载均衡策略)
3.2 测试配置监听
nacos页面新增配置,对应项目配置的spring.config.import=nacos:nacos-config-example.properties?refresh=true
监听到keys changed后refresh
nacos-service-a的两个实例的http://localhost:8004/user
都拿到了新值
4、参考文档
spring-cloud-alibaba GIT仓库
spring-cloud-alibaba 官方文档
nacos官方手册
Nacos 架构 & 原理 👈源码解读重点参考