远程调试部署在容器中的springboot项目「建议收藏」

远程调试部署在容器中的springboot项目「建议收藏」问题:访问网站,会根据ip判断访客所处位置,但部分ip插入数据库失败。 以为是一次小问题,很快就解决了,没想到最终花了6个小时左右,才搞清楚。分析 :1、将本地程序跑起来,发现一切正常,可以插入到数据库。但问题在线上确实妥妥的出现的,而我现在日志级别是info,没有错误日志。所有准备Debug线上程序,之前只debug过使用基本的tomcat发布。而我现在的jar是使用docker构建的镜像,运行的镜像。 2、问题从线上转化到了,我需要远程debug线上程序发现问题,并将之解决。查各种资料,配置

大家好,又见面了,我是你们的朋友全栈君。

问题:

访问网站,会根据ip判断访客所处位置,但部分ip插入数据库失败。 以为是一次小问题,很快就解决了,没想到最终花了6个小时左右,才搞清楚。

分析 :

1、将本地程序跑起来,发现一切正常,可以插入到数据库。但问题在线上确实妥妥的出现的,而我现在日志级别是info,没有错误日志。所有准备Debug线上程序,之前只debug过使用基本的tomcat发布。而我现在的jar是使用docker构建的镜像,运行的镜像。 2、问题从线上转化到了,我需要远程debug线上程序发现问题,并将之解决。查各种资料,配置端口进行调试。从起开启各种踩坑之路。 首先百度到的基本上就这几种:

远程调试部署在容器中的springboot项目「建议收藏」


远程调试部署在容器中的springboot项目「建议收藏」


远程调试部署在容器中的springboot项目「建议收藏」


远程调试部署在容器中的springboot项目「建议收藏」


远程调试部署在容器中的springboot项目「建议收藏」

远程调试部署在容器中的springboot项目「建议收藏」



以上基本上就涵盖了大部分博客内容,我都试过,但都没用。但不能说博文错着,人家博客可能就适合自己当时的问题。且解决了。

我呢,只能继续寻找问题的答案: 继续分析:明明启动了程序了,也修改了DockerFile文件了,问题出在哪里了。 

远程调试部署在容器中的springboot项目「建议收藏」

既然启动了,那就看端口是否监听,继续百度。通过查看启动日志方式,查看该端口是不是被监听着,但日志可以发现是有的,也没问题。

远程调试部署在容器中的springboot项目「建议收藏」

通过 netstat -tnlp | grep 端口号 查看端口是否启动 发现没有启动,找到问题了,该端口号没有启动,继续思考。为什么日志中已经显示监听状态,但通过netstat却找不到该端口呢。 于是继续百度,终于看到了几句话,大致想明白了,立马验证,果不其然,就是他导致的。先贴上截图: 

远程调试部署在容器中的springboot项目「建议收藏」

瞬间明白了,我只是在docker容器中开放了该端口,但是我并没有在启动时映射出来,于是修改我的启动脚本,加上映射出来的端口,然后远程debug,直接就连通了。然后远程都好了,ip插入不到数据库问题,还有什么难,几分钟就解决了 

远程调试部署在容器中的springboot项目「建议收藏」

总结:

1、在此次解决bug时,学会远程debug docker容器中的技巧,以后线上有问题能很快的定位,且可以启动多线程模式,也不影响其他人。 2、对docker容器理解更加深刻了。

 

原文链接:http://ganshuo8.com/article/baf44d183bd2cc60fbbf1dc2690c9d40

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147122.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 浅谈CMS垃圾收集器与G1收集器

    浅谈CMS垃圾收集器与G1收集器1、CMS收集器  CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于“标记-清除”算法实现,它的运作过程如下:1)初始标记2)并发标记3)重新标记4)并发清除  初始标记、从新标记这两个步骤仍然需要“stop the world”,初始标记仅仅只是标记一下GC Roots能直接关联到的对象,熟读很快,并发标记阶段就是进行GC Roots Tracing,而重新标…

    2022年5月8日
    46
  • [trans] Thresholding Algorithm[通俗易懂]

    [trans] Thresholding Algorithm[通俗易懂]十三种基于直方图的图像全局二值化算法原理、实现、代码及效果。     图像二值化的目的是最大限度的将图象中感兴趣的部分保留下来,在很多情况下,也是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。这个看似简单的问题,在过去的四十年里受到国内外学者的广泛关注,产生了数以百计的阈值选取方法,但如同其他图像分割算法一样,没有一个现有方法对各种各样的图像都能得到令人满意的结果。 …

    2022年5月16日
    50
  • 补码运算中的溢出_二进制补码运算溢出判断

    补码运算中的溢出_二进制补码运算溢出判断当两个以补码表示的负数相加时,会遇到两个问题。第一是两个负数的符号位相加,1+1后,本位为零,似乎负数相加变成了正数;其二是两个负数的数值部分之和,如果不向符号位进位,是不是就说明运算结果没有溢出?但不进位最终将导致两个负数相加成了正数,显然是错误的,这该怎么解释?如果两个以补码表示的负数的数值部分之和向符号位进位,会使运算结果依然为负数,那么这个运算结果是正确的吗?下面我们分析一下这个问题:

    2022年9月22日
    1
  • java面试两年工作经验的_无经验应届生面试自我介绍

    java面试两年工作经验的_无经验应届生面试自我介绍动机:最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司。我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪个知识点今天又问了等等。四月中旬的时候,我就在构思要写一篇面经,主要是想着可能对那些跟我相同处境的人有点帮助,再者就是稍微记录下这为期一个月的面试过程。本文地址:http://blog….

    2022年8月10日
    7
  • java.util.ConcurrentModificationException

    java.util.ConcurrentModificationExceptionjava.util.ConcurrentModificationException

    2022年4月23日
    58
  • Linux Vi 文本编辑器常用命令

    Linux Vi 文本编辑器常用命令*LinuxVi文本编辑器常用命令**引言:在Linux中我们常用的文本编辑器有Vi,Vim(Vi的增强版)。而且vi编辑器不仅仅是适用于Linux,它是所有Unix以及Linux系统下的标准编辑器,几乎适用于Unix、Linux系统的所有版本。vi或vim虽然没有Windows操作系统中的图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,永远不是图形界面的编辑器能比的。它能轻易地创建和修改文本文件,维护Linux系统中的配置文件。其实刚开始的时候我也觉得很不习…

    2022年7月26日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号