gateway的application.yml文件配置如下:
server:
port: 8001
spring:
cloud:
gateway:
#路由配置
routes:
#唯一标识符
- id: driver
uri: lb://driver
#路由断言
predicates:
- Path=/driver/**
#唯一标识符
- id: order
uri: lb://order
#路由断言
predicates:
- Path=/order/**
#唯一标识符
- id: pay
uri: lb://pay
#路由断言
predicates:
- Path=/pay/**
当我通过uri: http://localhost:8001/driver/直接去调用服务时,是可以调用的,但是当我用uri: lb://driver时就无法调用服务,报错503。
顺便提一下:503是服务不可用,当服务器不可用时发送给客户端的返回结果。
解决办法:
加入feign依赖
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-openfeignartifactId>
dependency>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-loadbalancerartifactId>
dependency>
猜测: 可能是因为nacos兼容feign,feign集成ribbon,默认实现负载均衡;或许是nacos不兼容springcloud gateway自带的ribbon。