Spring Cloud gateway + nacos 微服务流量转发配置最佳实践
版本信息
gateway: 2.2.6.RELEASE nacos: 1.4.1
先看几组参数:
gateway自动代理nacos上已注册服务
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
gateway手动代理内部服务
如果不使用上面的配置进行自动代理,怎么通过gateway访问一个内部微服务呢?例如:
spring:
cloud:
gateway:
route:
- id: microService-xx_route
uri: lb://microService-xx
predicates:
- Path=/microService-xx/**
filters:
- StripPrefix=1
order: 10001
这里:
以上区别是什么?
spring:
cloud:
gateway:
route:
- id: rewritepath_xx_to_newXX_route1
uri: lb://microservice-new-xx
predicates:
- Path=/microservice-xx/list/**
filters:
- RewritePath=/microservice-xx/list/(?<segment>.*), /microservice-new-xx/list/${
segment}
- StripPrefix=1
order: 1
这里的意思是当命中/microService-xx/list/**路径时,通过filters的规则将microservice-xx/list的流量转到/microservice-new-xx/list/,其服务名为lb://microservice-new-xx。
几个注意事项:
-
order提供的顺序,需要排在微服务选择前面,如果在微服务选择后面,规则不会生效 目前测试出来,一个filters只能有一条路径重写规则,如果能实现多条规则,在下面评论告知 不能使用自动代理nacos的服务名,即第一条所写的配置,目测原因是自动代理的代码执行优先级更高
参考资料: https://juejin.cn/post/7170933034248732703
下一篇:
java面试问哪些问题?精选必问
