用友云开发者中心助你上云系列之在线调试

栏目: 编程工具 · 发布时间: 6年前

现在,大家开始越来越多的谈论到高可用架构的互联网应用。什么是高可用?高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。

当我们谈论服务高可用的时候,我们通常聚焦在高并发、大流量、高可用性等关键字,企业上云,这些问题也是不可避免的。互联网应用正在由单体应用架构演变为微服务架构,服务的拆分,使得部署在云的运行实例也指数级的增加。

但是!测试再充分的服务,在线上运行起来后,都可能会出现问题。这些问题可能跟架构设计有关,也可能是为了快速响应用户需求在快速迭代中带来的BUG.这些缺陷如同大堤上的蚁穴,随时可能会引起线上服务的整体崩溃。

用友云开发者中心助你上云系列之在线调试

在这种情况下,我们就需要研发人员能迅速定位问题,并将修复问题后的版本在用户无感知的情况下快速上线,将缺陷的负面影响最小化。而线上问题的快速定位无非从日志分析、性能监控、线上环境的远程调试等几个方面入手。不同的方式适用于不同状况,各有千秋。但在这些解决方案中,基于线上环境的远程调试往往能够迅速分析出原因并解决,问题的解决速度脱颖而出。

什么是 Java 远程调试?

Java远程调试的原理是两个Java VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信,被debug程序的Java虚拟机在启动时开启debug模式,启动debug监听程序。JDWP是Java Debug Wire Protocol的缩写,它定义了调试器(debugger)和被调试的Java虚拟机(target vm)之间的通信协议。

target vm中运行着我们希望要调试的程序,它与一般运行的Java虚拟机没有什么区别,只是在启动时加载了Agent JDWP从而具备了调试功能。而debugger就是我们熟知的调试器,它向运行中的target vm发送命令来获取 target vm运行时的状态和控制Java程序的执行。Debugger和target vm分别在各自的进程中运行,他们之间的通信协议就是JDWP。

用友云开发者中心助你上云系列之在线调试

如何使用开发者中心进行在线调试?

如果你已经使用了开发者中心部署应用(上云),那么,可以非常荣幸的告诉你,看完下面的步骤,只需几秒钟的配置,就可以解救你于水火之中。

用友云开发者中心助你上云系列之在线调试

抛开一切烦恼,掏出你的笔记本电脑,准备开始具体的配置吧。

操作步骤

应用属性增加环境变量

CATALINA_OPTS = -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

如图:

用友云开发者中心助你上云系列之在线调试

应用增加调试端口,需和步骤1中的属性address=8000一致,如8000

如图:

用友云开发者中心助你上云系列之在线调试

保存并重启实例

用友云开发者中心助你上云系列之在线调试

实例重启完毕后,点击需要远程调试的实例控制台

在实例控制台中输入echo $PORT0,$PORT1,输出信息为应用放开的端口对应该实例的数组,PORT0对应8080端口,PORT1对应实例的8000端口(即远程调试使用的端口号)

用友云开发者中心助你上云系列之在线调试

查看实例运行的主机

用友云开发者中心助你上云系列之在线调试

配置开发工具IDE的远程调试信息为步骤6的IP地址和步骤5获得的端口

用友云开发者中心助你上云系列之在线调试

至此,大功告成,你可以轻松的进行问题排查了。此过程也可以用于日常开发过程中的在线定位问题,面对众多的微服务,无需再烦恼了。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

增长黑客实战

增长黑客实战

范冰、张溪梦 / 电子工业出版社 / 2017-6 / 59.00

《增长黑客实战》围绕硅谷前沿的增长黑客职业,讲解增长理念的树立、增长团队的组建、流程制度的创立、技术营销的运用等团队运营成功实战经验。作者以自身创业经验为蓝本,结合真实案例,并融入一些伟大创业者的智慧,创建了一套思考、验证和追求卓越增长的理论体系。那些想要验证自己的创意、解决实际增长问题和拥有成功事业的人,可以将《增长黑客实战》当成一套清晰的实践指南、一幅组建增长团队的指导蓝图,或者一套值得反复玩......一起来看看 《增长黑客实战》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具