首先开启gateway debug日志,可以看到

debug日志中是可以打印请求所命中的路由id的,Route matched: hello-route

然后我在想怎么在程序中获取到这个id呢?因为如果在程序中可以获取到这个id,我就可以按统计每个路由所被访问的次数。网上找了一些博客,都没有提到这个问题,所以只能自己想了。

首先我从打印日志的类开始搜,打开源码。

可以看到这里对应的r就是我们要获取的路由。因为从打印的日志中可以看出

Route{id='hello-route', uri=http://127.0.0.1:8763, order=0, predicate=org.springframework........

我们只要获取到这个Route对象就可以了。那么源码中这个对象放哪儿了呢?

所以我们只需要在exchange中根据

ServerWebExchangeUtils.GATEWAY_ROUTE_ATTR

这个key从Attributes获取就可以了。

下面编写一个Global Filter试试吧。

成功!

欢迎转载,注明出处哦!

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐