赞
踩
spring boot版本:2.1.10.RELEASE
spring cloud版本:Greenwich.SR4
<!-- spring gateway依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<!-- eureka依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
网上大部分采用 yml 配置,这里采用 application.properties。
spring cloud gateway官方文档
参考资料
# 暴露所有的gateway端点 management.endpoints.web.exposure.include=* # 自动配置注册中心中路由 默认 false关闭 spring.cloud.gateway.discovery.locator.enabled=false # 开启小写验证,默认feign根据服务名查找都是用的全大写 spring.cloud.gateway.discovery.locator.lowerCaseServiceId=true # 设置路由id spring.cloud.gateway.routes[0].id=jz-shop-product # 设置路由uri uri以lb://开头(lb代表从注册中心获取服务), # 后面接的就是你需要转发到的服务名称,这个服务名称必须跟eureka中的对应,否则会找不到服务 # 也可以是一个url spring.cloud.gateway.routes[0].uri=lb://jz-shop-product spring.cloud.gateway.routes[0].predicates[0]= Path=/shop-product/** spring.cloud.gateway.routes[0].filters[0]= StripPrefix=1 spring.cloud.gateway.routes[1].id=jz-shop-cart spring.cloud.gateway.routes[1].uri=lb://jz-shop-cart spring.cloud.gateway.routes[1].predicates[0]= Path=/shop-cart/** spring.cloud.gateway.routes[1].filters[0]= StripPrefix=1
注意:
- 这里配置了两个服务,如果用 predicates 配置了前缀,一定要用 StripPrefix 将前缀去掉,使url与服务中额url一致,否则会报404。
- 启动类无需额外添加除 @SpringBootApplication 之外的任何注解。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。