腾讯云服务容器死循环重启,仅供参考

以下场景仅为本人所遇到的场景,不通用仅供参考

项目场景:

项目场景:多租户集团分库,请求头集团入参,自动化校验集团入参,新平台上线之后容器死循环重启


问题描述:

原有一个集团编码过滤器,在被同事删除之后就发现构建服务后腾讯云服务容器死循环重启


原因分析:

最开始发现是异常捕获的后置处理器抛出空指针,问题块是记录当前请求失败的时间ip等信息。

  • 抛出行是从HttpServletRequest获得RequestStartTime以记录当前请求时间,但是发现直接抛了空指针。
  • 针对空指针问题进行兼容后,发现实际上是因为集团分库集团不存在抛了异常。
  • 后来排查了心跳的脚本,发现原有心跳访问的接口因为自动化校验,校验集团编码加了定值的原平台的集团编码,但在接入新平台之后,底层集团分库的后置处理器一直在抛出集团不存在的异常导致接口直接抛出异常,导致容器一直处于死掉的状态。

解决方案:

  • 由于原有集团编码过滤器会返回定值的失败提示信息,心跳认为他也处于存活状态,去掉过滤器之后原有心跳接口是一个按集团查询数据的接口,果断直接新写了一个接口,直接底层直接返回,就是我们所说的test服务是否正常启动可以访问的接口。
  • 此时建议心跳接口不要跟业务接口有任何关联,一方面会频繁访问数据库,另一方面定值入参要确保在多平台兼容。

你可能感兴趣的:(容器)