1、事故现象
部署最新的包到正式环境,相同的业务有的操作执行成功,有的操作执行异常,并且执行异常的均找不到日志
2、查找问题思路
(1)怀疑是部署的jar包不对
(2)怀疑多线程异常,错误被吞掉
(3)怀疑有其他节点处理了请求
3、思路1执行步骤
重新用别人的电脑部署了多次最新的jar,发现问题依旧在
4、思路2执行步骤
将操作的代码放置在多线程之外,做成同步操作,并在所有操作之前执行。
5、思路3执行步骤
首先检查了注册中心,发现没有多余的节点。
然后又仔细检查内网的所有电脑,包括办公机器,最终在其中一台办公机器中发现了jar包在运行,并在指定目录下找到了日志文件,停止该办公机的所有jar包,并删除所有日志文件。再次运行新部署的操作,发现代码执行成功,日志完好,重复执行了多次,并观察了2个多小时,均成功,问题解决
6、总结
请求被其他节点执行,并不容易被发现,错误启动的jar是没有指定启动的端口和配置,所以并未在注册中心查到。我们需要一个可以检测路由的组件。