design for failure

问题:支付系统缴费成功更新状态慢,
表象 未收到微信支付回调,没有找到日志
解决办法 增加多次主动查单,仍有延时,因为查询单次过多也怕微信封ip,所以查单的时候采用的多次渐进式查单+定时查单
根本原因是 回调部分 关于商户号的存储出现了问题,日志也没记录详尽导致

A程序 有一个内存变量C 在启动的时候需要从B程序读取数据,并写入到A程序
变量C研发环境没有问题,
生产环境有问题
原因是A 和B程序几乎是同时重启,由于A启动的时候B 正好处于不可用状态,导致变量C出了问题
变量C没有做反复检查,

调整办法
A程序启动的时候 启动一个检查线程,每分钟去检查变量C是否正确,不正确的情况下去找B程序重新获取,

总结
设计的时候要多考虑失败的情况,尽可能让程序正确,考虑所依赖的程序可能会故障,如果故障 ,能否自行恢复,恢复时间等

posted @   yongliu  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示