交易系统之数据库弱依赖解决方案

时间:2023-03-14 12:04:35

作者:京东科技 杜晓玉

前言

数据库,交易系统中最核心依赖,数据持久化属于最核心服务。

随着互联网的普及,大流量高并发的场景越来越多,7*24的交易系统对高可用要求越来越高,同时在“数据为王”大环境下,交易数据最终通过数据库进行持久化存储,数据库成为整个系统最终重要服务,不能出一点问题,尤其核心P0系统哪怕瞬间的DB操作异常可能造成大量异常交易,可能产生致命的问题,所以核心系统弱依赖数据库都是必须考虑的。

数据库弱依赖的整体思路:将最可靠链路再增加上备用链路替换,解决方案主要通过其他存储介质+补偿机制替换同步的DB操作,预期效果:数据库出现故障期间也能保证系统运行正常不影响线上业务开展。

本期介绍下实践过的三种解决方案:DB灾备机制方案、DB高并发替换方案、财富系统弱依赖DB方案。

一、DB灾备机制方案

日常引发数据库操作出现异常的常见情况:网络链路异常、执行工单导致数据库性能下降、慢SQL导致数据库异常等,并且从发现问题到解决往往时间不短,尤其核心交易链路都已无法容忍短时间的异常故障,所以首先考虑增加灾备机制,出现异常时间段内也要保证交易成功率,哪怕可以损失一点性能要求。DB灾备机制方案是2016年接触到并实施第一版弱依赖数据库方案。方案主要思路:DB操作故障时间段内,通过其他存储介质临时存储数据,并通过MQ异步补偿还原DB操作,达到最终数据一致性。

交易系统之数据库弱依赖解决方案

图1 DB灾备流程