V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wancoco
V2EX  ›  Java

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

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