arthas在docker中排查404问题

  先描述我们项目发布环境

   我们用的是商业K8S,项目发布是用CICD。

1、问题描述

      开发在本机测试接口没问题,发布到docker里却出现404错误。

2、排查过程

     1)检查请求方式,GET还是POST请求。

          结果一致。

     2)检查参数,接口接收是对象,FORM请求。

          结果一致。

     3)检查spring扫描范围(@ComponentScan(basePackages = {"com.ni.qtjk","com.hfkj"}))

          没有发现问题。

     4)排查SVN与开发本地代码

          结果一致。

     5)查检流水线dockerfile

          没有发现问题

     6)进入容器curl   http接口(检查网络转是否存在问题)

          报404错误(说明网络不存在问题)

     纠结,真想不出其它的办法。

     这时想到了线上问题排查神器arthas

     1)进入容器安装arthas

           curl -O https://arthas.aliyun.com/arthas-boot.jar

           java -jar arthas-boot.jar

    2)   反编译代码

         arthas 中sc命令可以进行代码反编译

        输入 sc com.ni(我们服务包名)发现无包名,却看到一个已经被删除的包名

        进入被删除的包名找到其中一个类反编译,发现代码确实是被删除的包下代码,这时问题已经确定,容器里面的jar肯定与SVN不一致,问题必定出现在流水线中。

    3)核对流水线涉及到jar的地方(因为流水线是运维同事创建的)

        发现流水线在制作镜像环节用的jar和pom(我们用的是maven)不一致

       问题点已找到,修改成与pom一致重新执行流水线即问题解决。

 

3、问题复盘

      流水线创建之初是不存在问题的,开发同事后来因为业务划分所以也修改了pom配置,开发同事不了解maven编译原理,所以修改pom后也未通知运维同事就出现了这一现象。花了我半天的时间啊。写此日志以警醒自己。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值