likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 41

前提

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

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

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

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

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

下面先上效果图~

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

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

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


安装教程

下载插件

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

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

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

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

点我下载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
评论
请登录