design for failure
问题:支付系统缴费成功更新状态慢,
表象 未收到微信支付回调,没有找到日志
解决办法 增加多次主动查单,仍有延时,因为查询单次过多也怕微信封ip,所以查单的时候采用的多次渐进式查单+定时查单
根本原因是 回调部分 关于商户号的存储出现了问题,日志也没记录详尽导致
A程序 有一个内存变量C 在启动的时候需要从B程序读取数据,并写入到A程序
变量C研发环境没有问题,
生产环境有问题
原因是A 和B程序几乎是同时重启,由于A启动的时候B 正好处于不可用状态,导致变量C出了问题
变量C没有做反复检查,
调整办法
A程序启动的时候 启动一个检查线程,每分钟去检查变量C是否正确,不正确的情况下去找B程序重新获取,
总结
设计的时候要多考虑失败的情况,尽可能让程序正确,考虑所依赖的程序可能会故障,如果故障 ,能否自行恢复,恢复时间等
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!