如何完成日千万级别以上的订单对账(二)

概述

距离上篇对账文章也有几个月之久,对账二期系统早已如期上线。
对于该系统,目前只有两个字,稳定得一比。

对账二期针对支付宝和微信千万级订单量对账时间在3分钟内完成对账&缓存存储(根据订单号查询平台方订单数据)。(公司业务上升很快,具体数字,涉及公司机密,不便泄漏)

由于对账一期在Redis上踩的坑,并且Redis内存需求会越来越大,成本高,对账二期未使用Redis。

使用RocksDB分布式数据库进行单机的本地存储(ESSD/SSD硬盘,ESSD性能为SSD百倍多,强烈推荐ESSD),极大的减少了成本,极大的增加了稳定性、准确性与性能。

关于系统架构与系统优化等等的一些坑在上篇文章已经介绍,在这里不会重复介绍一些类似的坑。

架构方面

基于SpringBoot的对账系统实现的一个比较不错的架构如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J7ECuFcu-1576118669258)(http://blogimg.chenhaoxiang.cn/18-12-13/58603483.jpg)]

对账单下载组件每天定时触发,从支付通道服务器上下载对账单。
在调度中心进行分配不同的对账系统进行不同的任务,可以按照通道划分任务,也可以按照业务系统订单维度划分任务。

对账系统处理完,进行入库或者缓存。选择差异处理方式,自动或者人工。
全部处理完成,进行通知到相应人员。

在数据层,数据量大,亦可以选择HBase等大数据存储数据库。

实际方案中,请采用简单阉割版架构(请看一期对账的系统)。

硬件支持

千万级别订单,每天使用磁盘空间大约为5G左右。建议硬盘使用云盘追加空间。(存储10天内订单数据即可,除非是想做成大数据,另说),建议是云盘,前期100GB即可(后期可扩展)。

一般来说,对账仅仅对前一日的订单数据,打款数据,所以,历史数据不需要存储太久,10天前的订单文件可随时删除。(如果实在需要一直

你可能感兴趣的:(程序编程之旅)