微服务更改为nacos的调整方案
下载nacos 1.4.3的部署包,并启动
启动命令:startup.cmd -m standalone
启动nacos 默认的端口号是8848
访问http://localhost:8848/nacos
默认账号是nacos nacos
调整pom的版本号
springboot升级到2.3.2版本,主pom
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
springcloud升级到Hoxton.SR9,主pom
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
添加springcloud-alibaba-2.2.6.RELEASE版本,主pom
<dependencyManagement>
<dependencies>
<!-- spring cloud alibaba 版本 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
调整service的pom,删除之前的eureka client ,添加ali的discovery和config
删除:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
添加:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
调整之前的application.yml 重命名为 bootstrap.yml并且删除其他的配置文件。
目前还没找到本地能覆盖线上的配置,只能通过设置一个线上没有的profile来进行本地化配置
增加spring.cloud.config相关配置
spring:
main:
allow-bean-definition-overriding: true
cloud:
nacos:
config:
#nacos中心地址
server-addr: 127.0.0.1:8848
# 配置文件格式
file-extension: yaml
namespace: ${spring.profiles.active}
extension-configs:
# 需共享的DataId,yaml后缀不能少,只支持yaml/properties
# 越靠后,优先级越高
- data-id: common.yaml
refresh: true
这里nacos的命名空间就使用了profile信息。profile配置为nacos创建的命名空间即可,data-id的只需要配置通用的,服务本身会自己去查找自己服务名.yml的配置信息。