server:
port: 7000
spring:
application:
name: api-gateway
cloud:
gateway:
routes: # 路由数组[路由 就是指定当请求满足什么条件的时候转到哪个微服务]
\- id: product_route # 当前路由的标识, 要求唯一
uri: http://localhost:8081 # 请求要转发到的地址
order: 1 # 路由的优先级,数字越小级别越高
predicates: # 断言(就是路由转发要满足的条件)
\- Path=/product-serv/** # 当请求路径满足Path指定的规则时,才进行路由转发 filters: # 过滤器,请求在传递过程中可以通过过滤器对其进行一定的修改
\- StripPrefix=1 # 转发之前去掉1层路径
通过网关访问微服务:
localhost:7000/product-serv/product/1
真正跳转的路径为:localhost:8081/product/1
server:
port: 7000
spring:
application:
name: api-gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
gateway:
discovery:
locator:
enabled: true # 让gateway可以发现nacos中的微服务
routes:
\- id: product_route
uri: lb://service-product # lb指的是从nacos中按照名称获取微服务,并遵循负载均 衡策略
predicates:
\- Path=/product-serv/**
filters:
\- StripPrefix=1
通过网关访问微服务:
localhost:7000/product-serv/product/1
简化的路由配置:
server:
port: 7000
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
gateway:
discovery:
locator:
enabled: true
直接访问网关:localhost:7000/service-product/product/1