「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战」
这里所说的线上不单单指正式环境,还可以是开发环境,测试环境。
代码出问题是很正常的,关键是怎么快速找到问题并解决问题。
一些简单的问题我们根据经验可以直接看出来,但是对于复杂的或者直接看不出的问题我们就需要debug了,debug的能力也是程序员必须的。
通常出现问题,本地启动程序debug,打断点然后一步步的跟着流程执行基本就可以解决问题了,但是偏偏就有一些诡异的问题,很难搞哦,本地怎么测都没问题,就是部署到服务器上会有问题,而且并不能简单的看出问题是什么。
(开发与测试的对话)
这种对话是不是很熟悉,线上的问题就是无法在本地复现出来,既然本地无法复现,那我们就线上debug,很简单很实用(工作几年才知道还有这种操作)
下面介绍下利用idea debug线上环境
1. configurations中配置remote
Add new configuration 中选中Remote
2. 配置IP和端口
主要就是配置线上服务器的IP和端口
Name: 随意,就是一个名字
Host: 所要调试的程序所在的服务器IP地址
Port:debug的端口,默认5005,可以任意修改(此端口非程序的端口)
然后Apply和OK 即可,至此本地idea配置完成。
3. 用debug命令重新启动线上的服务
1 | bash复制代码# debug的启动命令 |
dt_socket:使用的通信方式(不需要改)
server:是主动连接调试器还是作为服务器等待调试器连接(不需要改)
suspend:是否在启动JVM时就暂停,并等待调试器连接(不需要改)
address:地址和端口,地址省略,两者用冒号分隔(取自上一步配置的端口)
4. 开始debug
idea选择之前配置的configuration,然后选择debug启动,如下图
然后选中刚刚配置的remote,然后debug模式启动,出现下面的信息代表启动成功。
记得在需要调试的位置打上断点,然后直接请求线上的API ,就可以在本地愉快的debug了。
5. 注意!注意!注意!
重要是事情说三遍
不要在正式环境这样搞,线上debug是会阻塞的,请求都跑到你本地了,对线上环境有影响的。
不要在正式环境这样搞,线上debug是会阻塞的,请求都跑到你本地了,对线上环境有影响的。
不要在正式环境这样搞,线上debug是会阻塞的,请求都跑到你本地了,对线上环境有影响的。
你有没有什么快速定位问题或者更好的debug技术,欢迎沟通交流!!!
我是纪先生,用输出倒逼输入而持续学习,持续分享技术系列文章,以及全网值得收藏好文,欢迎关注或者关注公众号,做一个持续成长的技术人。
实际问题系列的历史文章
2. 好用工具: pt-online-schame-change
本文转载自: 掘金