请教个关于 dubbo 和 aop 的问题

2020-12-17 14:47:38 +08:00
 iColdCat

想问一下各位 v 友,springboot 有没有什么办法在调用其他服务的 dubbo 接口的时候通过 aop 这种技术来做一个拦截? 现在的场景是我这一个项目,里边好多地方调了其他服务的 dubbo 接口,但是没有入参和出参的 log 打印,也都没做 try catch 处理,然后我想到了 aop,想通过 aop 做统一的出入参的日志打印和统一的 try catch 处理,但是 dubbo 接口是代理,并不归 springboot 管理 aop 切不到 那有没有什么好的工具能实现类似 aop 的这种功能呢 求各位赐教,感激不尽

1713 次点击
所在节点    Java
7 条回复
clf
2020-12-17 14:58:11 +08:00
dubbo 的统一的日志打印建议用专门的日志管理工具,进行调用链追踪。比如 Tlog 、zipkin 之类的。

统一异常处理可以放在 dubbo 的 Filter 里。
cheng6563
2020-12-17 15:06:42 +08:00
不会 dubbo
AOP 拦截不到的话,可以写一个 BeanPostProcessor,在 postProcessAfterInitialization 里用个代理 Bean 把原来的 Bean 替换掉。
iColdCat
2020-12-17 15:18:16 +08:00
@cheng6563 感谢,我去了解一下 BeanPostProcessor
iColdCat
2020-12-17 15:19:28 +08:00
@lychs1998 你说的 dubbo 的 Filter 是指服务提供方的 filter 吗
yidinghe
2020-12-17 15:19:52 +08:00
Dubbo 有提供内置的 Filter 机制,你若需要跟踪入参出参,写个 Filter 的实现类即可,无需学习 AOP 。具体自己搜索吧。
hun2008hun
2020-12-17 15:24:21 +08:00
5 楼说的对,可以了解下 dubbo 的 SPI 机制
iColdCat
2020-12-17 15:37:23 +08:00
@yidinghe okok 我去了解下 谢啦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/736378

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX