我现在有一个底层的逻辑需要修改,需要确定影响到的所有接口,有没有什么插件可以让链路上的所有对外接口都飘红之类的操作?希望大佬伸出圆手!

2021-11-16 15:37:02 +08:00
 wancoco
2473 次点击
所在节点    Java
15 条回复
silencil
2021-11-16 15:50:22 +08:00
我哆啦 A 梦圆手可以伸,百宝口袋是万万不会为你打开的
dbpe
2021-11-16 16:01:56 +08:00
这个时候体现单测的重要性了..我想知道大公司如何规避的..
wancoco
2021-11-16 16:15:33 +08:00
@silencil 百宝袋里有没有一键毁灭公司的宝贝
chendy
2021-11-16 17:42:20 +08:00
为啥要改
不放心的话复制粘贴一份给要变更的逻辑用
monetto
2021-11-16 17:45:44 +08:00
如果要修改一个接口,想要确定谁调用过,那直接 IDEA Alt + F7 查看所有调用方不久行了?
gadfly3173
2021-11-16 17:47:36 +08:00
可以考虑给这个底层逻辑多加个参数 /改变参数类型什么的,然后 build 一下看看什么地方编译不过,给这些地方打标记啥的
DarkCat123
2021-11-16 18:11:53 +08:00
@monetto 可能说的调用是指 RPC 。
tyrantZhao
2021-11-16 19:18:00 +08:00
如果是线上的,建议不要这么改动,可以新见一个接口,灰度放量逐步迁移,如果有 ut,可以先跑下 ut
Jooooooooo
2021-11-16 19:25:13 +08:00
这种最好是新增一个接口
ScepterZ
2021-11-16 19:29:31 +08:00
如果公司有链路追踪的基础设施,这个事就很简单
wancoco
2021-11-16 21:16:25 +08:00
@monetto 这个只能看到一层的调用啊,当引用很深的话就没什么用了
BigMountain
2021-11-17 09:55:09 +08:00
我们做全链路切接口的时候是直接拿其他团队代码来看接口依赖 然后挨个对调用场景..
zhanlanhuizhang
2021-11-17 10:03:26 +08:00
https://shimo.im/docs/rK9tRTqTV3KqQvrt/read
这个大概是你想要的。但是你的项目大概需要重构。
zhanlanhuizhang
2021-11-17 10:06:23 +08:00
https://www.bilibili.com/video/BV1iT4y1d7UW?spm_id_from=333.999.0.0
这个是演示。里面有个功能演示。修改的代码影响了哪些功能。哪些类。
Aresxue
2021-11-17 13:24:45 +08:00
提供点思路
1.动态调用分析,依赖全链路监控系统,如 skywalking 、pinpoint ,有了这个之后你的方法被哪些服务调用甚至流量都能够计算出来
2.静态调用分析,在打包过程中对最终打包的 jar 的 class 进行静态分析(核心就是记录方法签名),这样就能够知道一个 rpc 方法被哪里所调用,缺点是代码里写了但是实际中可能已经不再使用这种情形无法分析,优点是成本较小,对上层业务 0 感知
3.全文代码检索,类似 kooder 这种全局代码检索,直接输入类的全名就能看到调用的地方,同样对上层业务 0 感知,且能覆盖全部分支,而非仅运行时的版本,缺点是如果是三方合作拿不到源码的话就比较难搞,相比之下 1 和 2 只需要一个部署的 jar 包

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

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

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

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

© 2021 V2EX