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面试问哪些问题?精选必问