安装nacos
启动nacos
打开nacos安装目录下bin目录,双击startup.cmd 启动,可参考该文章设置nacos为windown开机服务,免得重启电脑还需要重新启动nacos
删除eureka配置
pom.xml 删除以下配置
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
启动类删除以下下注解
@EnableEurekaServer
@EnableEurekaClient
application.yml删除以下配置(删除eureka下所有配置)
eureka:
instance:
hostname: ${spring.application.name}
ip-address: 127.0.0.1
non-secure-port: ${server.port}
instance-id: ${eureka.instance.ip-address}:${server.port}:${spring.application.name}
prefer-ip-address: true
#lease-expiration-duration-in-seconds: 60
#lease-renewal-interval-in-seconds: 30
client:
healthcheck:
enabled: true
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://127.0.0.1:8761/eureka/
......
配置nacos
pom.xml引入jar包
<!-- 父pom.xml新引入jar包(确定各个服务版本号)-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 项目里引入nacos包 jar包-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!-- 如果项目里引入loadbalancer 要加下面的配置不然实际调用api的时候会出错(两个负载均衡不知道找哪个了)-->
<!-- <exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions> -->
</dependency>
<!-- 配置中心注解-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- 支持 bootstrap.properties 或 bootstrap.yml 配置文件 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
启动类添加注解
@EnableDiscoveryClient
bootstrap配置文件(以下代码必须写到bootstrap文件中)
spring:
application:
name: com.passerby.service # 对应配置的data id会用到
profiles:
active: dev # 对应配置的data id会用到
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
username: xxx # 没有设置用户名密码的不需要
password: xxx
namespace: dev # 对应配置的命名空间
group: DEFAULT_GROUP # 对应配置的group
config: # 配置中心设置
server-addr: ${spring.cloud.nacos.discovery.server-addr}
username: ${spring.cloud.nacos.discovery.username}
password: ${spring.cloud.nacos.discovery.password}
file-extension: yml # 对应配置文件data id的后缀名
namespace: ${spring.cloud.nacos.discovery.namespace}
group: ${spring.cloud.nacos.discovery.group}
prefix: com.passerby.service # 如果存在该配置则data id会用到
shared-configs[0]: # 共享的配置文件 不需要就不用配
data-id: com.passer.common-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
group: ${spring.cloud.nacos.discovery.group}
refresh: true
http://127.0.0.1:8848/nacos
注意bootstrap文件里的配置需要和图片上配置一致 不然会读取不到配置内容