nacos2021.1配置踩坑记录
2021-08-05 本文已影响0人
板栗炖牛肉
前言
- 对比官网配置,踩了N个坑,最终还是归纳为版本问题
- spring 环境
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.9</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<spring-cloud.version>2020.0.3</spring-cloud.version>
- naocs包,这里比较新,踩坑!!!
<!-- 配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.1</version>
</dependency>
<!-- 注册中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.1</version>
</dependency>
解决方案
- 第一个坑,远程配置中心未生效,测试为
bootstrap.yml
没有生效,添加依赖包
<!-- bootstrap -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.3</version>
</dependency>
-
bootstrap.yml
配置
spring:
application:
name: main
cloud:
nacos:
config:
# 配置文件的环境
group: remote
# 配置文件的格式
file-extension: yaml
# 配置中心的地址
server-addr: 127.0.0.1:8848
#命名空间
namespace: b14470b8-2099-41c1-8652-8cad015b0b53
#是否开启配置中心
enabled: true
- 第二个坑,负载均衡未生效,即
@LoadBalanced
这个注释未生效
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
- 添加依赖包
<!-- 负载均衡-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<version>3.0.3</version>
</dependency>
- 解决后正常使用服务名请求
restTemplate.postForObject("http://oss/postFile", valueMap, String.class)
- 最终
nacos
依赖包
<!-- 配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.1</version>
</dependency>
<!-- 注册中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.1</version>
</dependency>
<!-- 负载均衡-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<version>3.0.3</version>
</dependency>
<!-- bootstrap -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.3</version>
</dependency>