zoukankan      html  css  js  c++  java
  • 用友云开发者中心助你上云系列之在线调试

    现在,大家开始越来越多的谈论到高可用架构的互联网应用。什么是高可用?高可用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获得的端口

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

     

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

  • 相关阅读:
    021.day21 反射 Class类 反射常用操作
    020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步
    019.day19 缓冲流 对象流 标准输入输出流
    018.day18 map集合如何实现排序 File类 IO流 字节流 字符流 编码
    017.day17 Map接口 克隆 treeSet集合排重缺陷
    016.day16 HashSet TreeSet 比较器Comparable Comparator
    015.day15
    014.day14
    013.day13
    线程
  • 原文地址:https://www.cnblogs.com/yunpt/p/10376360.html
Copyright © 2011-2022 走看看