系统在生产环境出现问题时,排查问题最好的方式就是查看日志了,日志的记录尽量详细,这样你才能快速定位问题。需要框架源码请看我个人简介
下面带大家学习如何在 Zuul 中输出请求响应的信息来辅助我们解决一些问题。
熟悉 Zuul 的朋友都知道,Zuul 中有 4 种类型过滤器,每种都有特定的使用场景,要想记录响应数据,那么必须是在请求路由到了具体的服务之后,返回了才有数据,这种需求就适合用 post 过滤器来实现了。代码如下所示。
输出效果如图 1 所示。
获取响应内容的第一种方式,代码如下所示。
获取响应内容的第二种方式,代码如下所示。
为什么上面两种方式可以取到响应内容?
在 RibbonRoutingFilter 或者 SimpleHostRoutingFilter 中可以看到下面一段代码,代码如下所示。
forward() 方法对服务调用,拿到响应结果,通过 setResponse() 方法进行响应的设置,代码如下所示。
上面第一行代码就可以解释我们的第一种获取的方法,这里直接把响应内容加到了 RequestContext 中。
第二种方式的解释就在 helper.setResponse 的逻辑里面了,代码如下所示。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70006413/viewspace-2793506/ ,如需转载,请注明出处,否则将追究法律责任。