【效能提升】本地化接口链路耗时监控实践~
前提
相信大部分小伙伴在编码完接口逻辑之后都会先在本地启动项目,然后postman
调用一下接口,看看response
是否符合预期,然后再部署到测试环境。
但是,如果接口场景是一些对耗时有严格要求的场景,例如: 商详、商列等
,那我们在postman
调用时如果发现耗时比较大,那么就需要进行一定程度的调优了,例如: 异步化
;但一个接口的堆栈可能很深
,那我们怎么知道到底是哪块的逻辑是耗时的罪魁祸首
呢?
当然啦,有个经典的蠢办法,对于我们怀疑的可能是罪魁祸首的逻辑,在调用前后打上耗时,如下例:
long start = System.currentTimeMillis();
// ... 可能耗时的代码逻辑
log.info("接口耗时, {}", (System.currentTimeMillis() - start));
但是这种办法实在是效率太低了.... ,我们自然是要寻求高效率的方式,也就是本文会给大家推荐的IDEA插件 -> XRebel
下面先上效果图~
耗时百分比都给你展示出来,实在是yyds
!
安装教程
下载插件
在idea plugins
里面搜索JRebel
,JRebel
的作用是热部署的,本文重点还是XRebel
可以看到我目前安装的版本是2022.4.1
!为什么不是最新的?当然是因为我不知道最新的怎么破解的啦

下载之后,直接手动导入zip
,如下所示
激活插件
下载完毕之后,接着就是激活插件了

选择Team URL
进行激活
GUID
生成链接:www.guidgen.com/
第一行输入:jrebel.qekang.com/{GUID}
第二行输入:邮箱格式正确,邮箱地址随便填
然后就可以激活成功
啦~

配置插件
选择Work online
使用插件
可以-Dserver.port=8888
指定下启动端口~
选择XRebel or JRebel + XRebel
方式启动项目,记得选择火箭图标进行run
然后按照如下格式进行访问即可~
http://localhost:{项目的端口号}/xrebel
第一次访问也需要激活,按照上面跟大家说的激活方式填写即可激活~
一些坑
新UI IDEA没有可选择agent启动方式
如下可见,IDEA的旧UI
直接提供了如下三种选择方式
但在新UI
中就没有了直接可选择的方式
不过进过我一番寻找,还是能找到可选择的方式,路径如下
端口冲突,XRebel无法访问
这个说着就有点太倒霉了!
之前我项目的端口一直设置的是6000
,但是按照上面配置后,启动访问就会出现如下问题!
我一度怀疑是不是我电脑有问题,哈哈哈哈,但其实不是,根本上的问题是我是倒霉蛋!!!
经过我一顿搜索,发现了如下内容!
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
,正在其中

将项目端口换成别的,比如:8888
就好啦~
后话
我是 Code皮皮虾 ,会在以后的日子里跟大家一起学习,一起进步!
觉得文章不错的话,希望大家多多支持,一键三连~ 页可以在 掘金 关注我~
转载自:https://juejin.cn/post/7248655627928813623