发布于 ,更新于 

euraka切换到nacos踩坑

1. 配置过程

1.1 去掉eureka相关pom依赖、注解、配置

1.2 添加nacos相关pom依赖

1
2
3
4
5
6
7
8
9
<!-- nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

1.3 启动类添加注解:

1
2
@RefreshScope
@EnableDiscoveryClient

1.4 nacos控制台添加命名空间、配置等

1.5 添加nacos启动配置文件:bootstrap.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#主要配置,可将原来的application.yml中的通用配置移到这里
spring:
application:
name: TiGraph-Tgdb
profiles:
active: dev
#多环境单独配置
---
# 开发环境
spring:
profiles: dev
cloud:
nacos:
config:
server-addr: 1.13.6.145:6848
namespace: 51d63420-0d34-47f4-b4c7-73ca1620ad9c
group: tigraph
file-extension: yaml
discovery:
server-addr: 1.13.6.145:6848
namespace: 51d63420-0d34-47f4-b4c7-73ca1620ad9c
group: tigraph
---
# 测试环境
spring:
profiles: test
cloud:
nacos:
config:
server-addr: 1.13.6.145:6848
namespace: 0dbdae60-6af0-4b86-9d02-d795e48f4094
group: tigraph
file-extension: yaml
discovery:
server-addr: 1.13.6.145:6848
namespace: 0dbdae60-6af0-4b86-9d02-d795e48f4094
group: tigraph
---
# 生产环境
spring:
profiles: prod
cloud:
nacos:
config:
server-addr: 1.13.6.145:6848
namespace: 8a9d9e14-86ae-44ec-b411-d9deb5307baf
group: tigraph
file-extension: yaml
discovery:
server-addr: 1.13.6.145:6848
namespace: 8a9d9e14-86ae-44ec-b411-d9deb5307baf
group: tigraph

2.遇到的问题

2.1 logback冲突

启动类添加启动配置System.setProperty(“nacos.logging.default.config.enabled”,”false”);

1
2
3
4
5
6
public class AssistApplication {
public static void main(String[] args) {
System.setProperty("nacos.logging.default.config.enabled","false");
SpringApplication.run(AssistApplication.class, args);
}
}

2.2 配置报错

nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder ‘xxl.job.accessToken’ in value “${xxl.job.accessToken}”

nacos中无法识别配置中的值为空的情况:

1
2
3
xxl:
job:
accessToken:

解决方案,添加: “”

1
2
3
xxl:
job:
accessToken: ""