记录生产环境项目部署故障

背景:线上A服务,是双节点,node1和node2

问题描述:node1能正常部署起来,node2一直部署失败,进程无法启动,

造成结果:由于SLB上给这2个节点,配置的流量都是50%,此时打到node2上面的请求全部返回404服务异常,而且请求还特别多,外部请求纷纷报错,都来找我们

初步判断不是代码问题,因为项目已经构建成功,只是部署失败,考虑到此项目流量特别大,通过日志无法快速定位原因,5分钟后,绝对先启用临时方案

临时解决办法:将SLB上,node1节点流量配置100%,将所有流量指向node1,保证请求能正常访问(短时间内,部分请求报QPS过载),然后迅速扩容一个新节点node3,将项目构建部署,发现能部署成功,果断在SLB上,将node1和node3的流量各配置成50%,此时项目正常运行,请求响应正常

后续排查:将node2流量置为0,尝试重新部署node2,发现node2上报以下错误

问题根源:我们项目中会有重试队列(重试请求外方),会生成一个个database文件存储在/tmp/cop/taskRetry上,一般在项目重启的时候会去默认继续读取队列,然后当项目部署的时候,,kill进程的时候,队列文件写入失败,但是在另一个根队列中列表文件中记录了队列名称,所以项目重启初始化的时候,找不到这个队列,会报fileNotFoundException,导致项目启动不了

解决办法:将/tmp/cop/taskRetry底下的根队列文件删除,重新部署,启动成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值