这个方法在整合spring cloud gateway组件进入项目时,是很有用的。
如果给项目引入了网关,那就代表着大多数甚至是全部请求都需要由网关来路由转发,那就需要编写对应的路由规则。
那么怎么知道我们的路由规则写的对不对,如果通过网关访问微服务接口无法正常响应,怎么排查,此时需要找到路由后的真实路径,然后就可以知道是不是路由规则写错了。
怎么找到路由后的真实路径?
这里不建议加配置,改源码,打日志什么的,直接源码打断点,查看参数值,毕竟网关整合也只是网关正常上线才需要调试,不需要专门打出日志,改源码就更麻烦了,简单事情复杂化了。
一般来说,网关请求路由到微服务时,微服务多实例,也是做需要负载均衡的,直接跟进一个关键类org.springframework.cloud.gateway.filter.LoadBalancerClientFilter,打上断点,如下:
客户端发起请求,控制台上可以看到如下信息:
uri就是原始路径,requestUrl就是真实路径,这样一对比,就能够知道路由规则写的对不对,所以哪怕你对各种路由方式不熟悉,掌握这种方式,再加上官方文档,肯定是能够写出符合你自己要求的路由规则的。