以前我一直以为刷了卡,积分就应该到账,但是一般要过两三天,体验很差。
直到上网查了一下公开资料,了解了银行大概的系统架构,对这个东西才有了初步的理解。我不是专业人士,说的不一定对,大家互相探讨吧。
一笔刷信用卡交易大概的流程如下:
1刷卡 -> 2卡核心大机 -> 3负责存储的TP数据库 -> 4部分数据下发到其他数据库或者应用 -> 6应用做数据加工 -> 7 展示给客户
步骤3中的数据库主要是增删改查的数据库,负责存储数据,一般是按行存储的,这个数据也不会用来做分析啊之类的,但是会按照某些需求把数据下发给需要的地方,比如负责分析的OLAP类数据库/某些应用(比如计算你刷卡资格是否达标,能不能领奖的应用)。又比如,刷卡马上就要扣你的可用额度,这个是一定要
实时的,银行的硬件资源肯定优先给这个链路,但是消费入账这个每天晚上统一跑一个批次就可以,这个数据就可以是每天晚上跑批,然后入账,更不着急的需求就可以t+2或者t+3才入账。再比如说,如果入账这个跑一次批就到了t+1,那可能积分系统用批量入账数据,第二天再跑批(再+1天),就是t+2。
在实时和离线之间还有个准实时的概念,比如某个银行推出一个返现活动,刷卡之后要给客户推送返现成功短信,这个短信固然刷卡后立刻发给客户最好,但是也没有必要投入巨量资源保证都是马上发送短信成功。比如说正常每天100个人同时刷,那硬件只要保障这100个就好了,如果每个月月初的时候同时有1000人刷卡需要发送短信,那通过排队等机制慢慢发短信就好,这种属于准实时。准实时和实时一般用的技术栈也不完全一样。
先写到这里,有兴趣的人多的话我再写写。