【效能提升】本地化接口链路耗时监控实践~

前提

相信大部分小伙伴在编码完接口逻辑之后都会先在本地启动项目,然后postman调用一下接口,看看response是否符合预期,然后再部署到测试环境。

但是,如果接口场景是一些对耗时有严格要求的场景,例如: 商详、商列等,那我们在postman调用时如果发现耗时比较大,那么就需要进行一定程度的调优了,例如: 异步化;但一个接口的堆栈可能很深,那我们怎么知道到底是哪块的逻辑是耗时的罪魁祸首呢?

当然啦,有个经典的蠢办法,对于我们怀疑的可能是罪魁祸首的逻辑,在调用前后打上耗时,如下例:

long start = System.currentTimeMillis();
// ... 可能耗时的代码逻辑
log.info("接口耗时, {}", (System.currentTimeMillis() - start));

但是这种办法实在是效率太低了…. ,我们自然是要寻求高效率的方式,也就是本文会给大家推荐的IDEA插件 -> XRebel

下面先上效果图~

image-20230622141734421

耗时百分比都给你展示出来,实在是yyds

image-20230622141834065


安装教程

下载插件

idea plugins里面搜索JRebelJRebel的作用是热部署的,本文重点还是XRebel

image-20230622141204817

可以看到我目前安装的版本是2022.4.1!为什么不是最新的?当然是因为我不知道最新的怎么破解的啦

image-20230622142345576

点我下载2022.4.1版本

下载之后,直接手动导入zip,如下所示

image-20230622142542097


激活插件

下载完毕之后,接着就是激活插件了

image-20230622142709499

选择Team URL进行激活

GUID生成链接:www.guidgen.com/

第一行输入:jrebel.qekang.com/{GUID}

第二行输入:邮箱格式正确,邮箱地址随便填

然后就可以激活成功啦~

image-20230622142740885


配置插件

选择Work online

image-20230622143102215


使用插件

可以-Dserver.port=8888指定下启动端口~

image-20230622143418473

选择XRebel or JRebel + XRebel方式启动项目,记得选择火箭图标进行run

image-20230622144130380

然后按照如下格式进行访问即可~

http://localhost:{项目的端口号}/xrebel

image-20230622144322985

第一次访问也需要激活,按照上面跟大家说的激活方式填写即可激活~


一些坑

新UI IDEA没有可选择agent启动方式

如下可见,IDEA的旧UI直接提供了如下三种选择方式

image-20230622144130380

但在新UI中就没有了直接可选择的方式

image-20230622150741203

不过进过我一番寻找,还是能找到可选择的方式,路径如下

image-20230622150851873


端口冲突,XRebel无法访问

这个说着就有点太倒霉了!

之前我项目的端口一直设置的是6000,但是按照上面配置后,启动访问就会出现如下问题!

image-20230622151458554

我一度怀疑是不是我电脑有问题,哈哈哈哈,但其实不是,根本上的问题是我是倒霉蛋!!!

经过我一顿搜索,发现了如下内容!

Chrome默认部分非安全端口列表,虽然上面的方法可以解决问题,但建议尽量避免以下端口:

1,    // tcpmux
7,    // echo
9,    // discard
11,   // systat
13,   // daytime
15,   // netstat
17,   // qotd
19,   // chargen
20,   // ftp data
21,   // ftp access
22,   // ssh
23,   // telnet
25,   // smtp
37,   // time
42,   // name
43,   // nicname
53,   // domain
77,   // priv-rjs
79,   // finger
87,   // ttylink
95,   // supdup
101,  // hostriame
102,  // iso-tsap
103,  // gppitnp
104,  // acr-nema
109,  // pop2
110,  // pop3
111,  // sunrpc
113,  // auth
115,  // sftp
117,  // uucp-path
119,  // nntp
123,  // NTP
135,  // loc-srv /epmap
139,  // netbios
143,  // imap2
179,  // BGP
389,  // ldap
465,  // smtp+ssl
512,  // print / exec
513,  // login
514,  // shell
515,  // printer
526,  // tempo
530,  // courier
531,  // chat
532,  // netnews
540,  // uucp
556,  // remotefs
563,  // nntp+ssl
587,  // stmp?
601,  // ??
636,  // ldap+ssl
993,  // ldap+ssl
995,  // pop3+ssl
2049, // nfs
3659, // apple-sasl / PasswordServer
4045, // lockd
6000, // X11
6665, // Alternate IRC
6666, // Alternate IRC
6667, // Standard IRC
6668, // Alternate IRC
6669, // Alternate IRC

而我的项目端口6000,正在其中

image-20230622152018108

将项目端口换成别的,比如:8888就好啦~

后话

我是 Code皮皮虾 ,会在以后的日子里跟大家一起学习,一起进步!

觉得文章不错的话,希望大家多多支持,一键三连~ 页可以在 掘金 关注我~

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MY5mAzWw' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片