描述
spring-boot :2.4.2
Springcloud :2020.0.1
Springcloud Alibaba :2021.1
不是此版本,可能,并不是适合。
问题经过
开始的时候,Gateway模块引入以下依赖:
<!--nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
gateway 配置文件
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: http://127.0.0.1:8848
gateway:
routes:
- id: son
uri: lb://son
predicates:
- Path=/son/**
- id: nacos-1
uri: lb://nacos-1
predicates:
- Path=/test/**
postman 访问: 如下图
实际上:nacos是被访问的服务是正常的。并且路径正确。
经过一番百度:是因为 lb 的原因。
加上依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
再次启动:
控制台抛出:nacos ServerName is illegal 无效。引入下面依赖解决
<!--处理 读取不到 bootstrap 配置文件读取不到-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
再次启动并访问:
竟然404. 一阵百度之后:加上下列配置
最终解决方法
<!--nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--处理 读取不到 bootstrap 配置文件读取不到-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
配置文件
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: http://127.0.0.1:8848
gateway:
routes:
- id: son
uri: lb://son
predicates:
- Path=/son/**
- id: nacos-1
uri: lb://nacos-1
predicates:
- Path=/test/**
discovery:
locator:
enabled: true
server:
port: 9999
debug: true