当前位置:首页 > 实用技巧 >

java框架结构教程交流(java10个框架教程交流)

来源:原点资讯(www.yd166.com)时间:2023-11-21 08:09:36作者:YD166手机阅读>>

java框架结构教程交流,java10个框架教程交流(1)

作者:码农小胖哥

1. 前言

今天线上出现了个 Bug ,而且比较坑的是涉及到微信相关的东西不能线下调试。传统方式是在代码中各种的日志 log 埋点然后重新部署进行调试,再根据 log 中的信息进行分析。如果你的 log 埋点不合理,就要不停的修改代码、不停的打包部署。有没有什么*操作避免上面的问题呢?

2. 远程调试

当然有解决方案,这就是远程调试(Remote Debugging)。远程调试使开发人员能够直接诊断服务器或其它线上进程上的问题,它提供了跟踪线上运行时错误并确定性能瓶颈和问题根源的方法,让你能够像在本地调试一样 Debug 远程服务器。接下来我们将使用流行的 Java IDE,由 JetBrains 出品的 IntelliJ IDEA 来进行远程调试。 要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的 JVM 参数,这些参数是:

-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port}

其中 debug_port 是服务端开放的调试端口,后续本地配置会用到。

3. 使用 IDEA 进行远程调试

IntelliJ IDEA 进行远程调试并不复杂经过下面几个步骤就可以很方便的配置。

3.1 本地参数配置

java框架结构教程交流,java10个框架教程交流(2)

按照上面图的位置打开配置面板新建一个 Remote调试面板如下:

java框架结构教程交流,java10个框架教程交流(3)

按照上图所示的顺序结合你自己服务器和本地环境依次进行配置,然后点击确定就行了。其中步骤 2 和 4 端口就是我们远端指定的 debug_port 端口号。

3.2 JDWP 协议

这里有一个小小的知识点就是 参数中的 jdwp 。那么什么是 jdwp?

JDWP 是 Java debug Wire Protocol 的缩写,它定义了调试器(debugger)和目标虚拟机(target vm)之间的通信协议。Target vm 中运行着我们要调试的 Java 程序,它与一般运行的 JVM 没有什么区别,只是在启动时加载了 JDWP Agent 从而具备了调试功能。而 debugger 就是我们本地的调试器,它向运行中的 target vm 发送指令来获取 target vm 运行时的状态和控制远程 Java 程序的执行。Debugger 和 target vm 分别在各自的进程中运行,他们之间通过 JDWP 通信协议进行通信。

3.3 开启远程调试

java框架结构教程交流,java10个框架教程交流(4)

点击箭头所示的 绿色甲虫按钮 (快捷键 Shift F9) 就启动调试了,然后设置好本地代码的断点,让远程的逻辑触发断点逻辑就可以进行打断点调试了。

请务必保证本地 debug 的代码与远程部署的代码完全一致,不能发生任何的修改!否则断点将无法命中!

4. 一些要点

除了需要保证代码一致外,这里还有一些需要我们注意的地方。调试完毕远程的 JDWP Agent 应该被禁用,也就是将远端的相关参数去掉。另外在调试中远端的日志并不会映射到本地,当然你可以借助一些工具将远程的日志映射到本地以提供更强大的调试功能。

还要记住,虽然远程调试是一个非常强大的工具,但是它并非银弹!生产环境不是调试的合适目标,请勿滥用!

5. 总结

正如我在本文中介绍的那样,使用 IntelliJ IDEA 进行远程调试非常简单,只需几个步骤即可使用。有些情况下它很方便地解决了我们的问题。但是它不应该被滥用,应该被合理地使用。

原文:https://juejin.im/entry/5de68797e51d45581c1a7167

,

栏目热文

java框架底层技术交流(java10个框架教程交流)

java框架底层技术交流(java10个框架教程交流)

前言在日常的项目开发中,项目可能需要适配不同的数据库类型。而你需要做的仅是修改对应datasource配置即可。不知你是...

2023-11-21 08:42:24查看全文 >>

java三大框架咋学(java怎么才能学框架)

java三大框架咋学(java怎么才能学框架)

Java是世界第一编程语言,这已经达成共识,是毋庸置疑的真理。框架是程序员们必学的知识点,而且是十分重要的应用,Spri...

2023-11-21 08:37:16查看全文 >>

java自己写框架是怎样的体验(学习一个java框架要多久)

java自己写框架是怎样的体验(学习一个java框架要多久)

用注解一时爽,一直用一直爽Java后端开发进入spring全家桶时代后,开发一个微服务提供简单的增删改查接口跟玩泥巴似...

2023-11-21 07:54:18查看全文 >>

怎样写一个java框架(java 自己动手写框架)

怎样写一个java框架(java 自己动手写框架)

点击上方"Java全栈技术"关注我们,每天学习一个java知识点天才程序员去创造工具,大众程序员去使用工具, 我想大部分...

2023-11-21 08:37:24查看全文 >>

java学会主流框架就可以了吗(java什么框架最好用)

java学会主流框架就可以了吗(java什么框架最好用)

前言JAVA架构师是不少Java程序员的发展方向之一,也是从应用级程序员成长为研发级程序员所需要经历的重要阶段,所以了解...

2023-11-21 08:37:10查看全文 >>

java怎么打造框架(java框架怎样学习)

java怎么打造框架(java框架怎样学习)

Java 程序员方向太多,且不说移动开发、大数据、区块链、人工智能这些,大部分 Java 程序员都是 Java Web/...

2023-11-21 07:56:59查看全文 >>

奥迪q5l怎么设置锁车自动升窗功能(奥迪q5l如何恢复锁车自动升窗)

奥迪q5l怎么设置锁车自动升窗功能(奥迪q5l如何恢复锁车自动升窗)

车辆熄火后才发现四个车窗和天窗都没封闭,此时大意的车主只好重新打火后封闭车窗。其实大可不用周折,提示车主,只需长按锁车键...

2023-11-21 08:29:12查看全文 >>

奥迪q5l如何设置锁车自动关窗(奥迪q5l怎样设置锁车车窗自动关闭)

奥迪q5l如何设置锁车自动关窗(奥迪q5l怎样设置锁车车窗自动关闭)

【改装车型】奥迪Q5L【改装项目】原厂无钥匙舒适进入系统你是否存在这样的问题?1、抱孩子不方便掏钥匙,单手触碰感应开门。...

2023-11-21 08:25:48查看全文 >>

q5l怎样设置离车自动落锁(q5l如何设置锁车自动升窗)

q5l怎样设置离车自动落锁(q5l如何设置锁车自动升窗)

奥迪Q5L车衣、车窗膜、方向盘套和脚垫的效果。90%的人买了新车后,这个功能都没有用上。·先接通电源,然后找到车门上的锁...

2023-11-21 07:54:37查看全文 >>

奥迪q5l锁车自动升窗功能怎么设置(奥迪q5锁车有没有自动升窗功能)

奥迪q5l锁车自动升窗功能怎么设置(奥迪q5锁车有没有自动升窗功能)

【前言】:奥迪Q5L手机客户端“一汽奥迪”App的主要功能是利用手机对车辆实现远程监控,即监视和操控两大功能,这对车主来...

2023-11-21 08:28:50查看全文 >>

文档排行