让网关通过微服务名称进行转发到对应的微服务,只需要添加配置文件
# 配置自动的根据微服务名称进行路由转发
discovery:
locator:
enabled: true #开启根据服务名称自动转发
lower-case-service-id: true #微服务名称以小写形式呈现
server:
port: 8080 #服务端口
spring:
application:
name: api-gateway #指定服务名
cloud:
gateway:
routes:
#配置路由:路由id,路由到微服务的url,断言(判断条件)
- id: service-product
uri: lb://service-product
predicates:
- Path=/service-product/**
filters:
- RewritePath=/service-product/(?<segment>.*),/$\{segment}
# 配置自动的根据微服务名称进行路由转发
discovery:
locator:
enabled: true #开启根据服务名称自动转发
lower-case-service-id: true #微服务名称以小写形式呈现
eureka:
client:
serviceUrl:
defaultZone: http://127.0.0.1:9003/eureka/
registry-fetch-interval-seconds: 5 # 获取服务列表的周期:5s
instance:
preferIpAddress: true
ip-address: 127.0.0.1
配置完成gateway 服务后,重启即可。
这样不管RewritePath 上面配置的是什么,都会根据微服务名称进行路由转发