1000W交易数据对账,如何做到性价比最(jiao)高?

2019-10-08  本文已影响0人  咦咦咦萨

对账,是一个支付系统的必备功能。
如何做到性价比最(jiao)高?
是一个应该思考的问题。

所谓“性价比”,在我看来,就是技术方案要符合公司的基本情况,正所谓经济基础决定上层建筑。合格的技术方案,既要满足现有业务的要求,又要预留足够的可扩展性,这样就能可持续发展,而不是一遍又一遍的造轮子。

现在,我们要对1000万交易数据做对比,该如何制定方案呢?

因为我们是小厂,杀鸡用不起牛刀,所以不能照搬全套的大数据平台(实际上是没有)。那么我们能选择的就只有两种方式:

数据库对比

优势

不足

代码对比

优势

不足

最终方案

本着勤俭持家的理念,我们先来测试一下“代码对比”的方式。

具体的思路也是比较简单:大事化小,小事化了。 首先将大数据文件,按照预定规则拆分成可处理的小份数据,然后在对小份数据进行筛选对比即可。这里的规则,我们选用订单基础字段作为key,对key取hash之后,均匀的写入到临时分片文件中,这样既可使系统和上游的同一笔订单落在同一个文件中,提高对比效率。

对账.jpg

在未优化的情况下,千万数据对账(系统500W,上游500W),单机(Macbook Pro)测试结果如下:

Watch 'dz': running time (millis) = 38060
-----------------------------------------
ms     %     Task name
-----------------------------------------
15149  040%  SplitFile-bank
08124  021%  SplitFile-sys
14787  039%  compare

测试结果跟单机性能(磁盘、CPU)密切相关。经测试普通PC也会稳定在1分钟以内。

然后,还要什么然后?

上一篇 下一篇

猜你喜欢

热点阅读