几年前,一个互联网金融兄弟跟我讲,随着移动互联的高速发展,移动支付高并发和高浪涌的性能需求,经典IOE架构性能不足,迫使金融技术架构要往分布式架构演进,需要横向扩展多个节点。
那个时候我是将信将疑,我看过某些数万亿资产规模的城商行和股份制银行的性能数据,整个核心系统(包含移动支付)的IOPS也就2~3万,大行就见过10来万,IO性能都很富余,没有像他说的性能不足呀。
最近两年,走访了很多客户,大致问了一遍,了解了一些真实性能数据,供大家参考,欢迎拍砖。
包含移动支付的核心交易峰值性能,TOP大行在2~3万TPS左右,往下大行1.x万,股份制个人金融最厉害的行是1.x万TPS,头部股份制银行一般介于2000~5000TPS左右,规模大的省级城商行农信农商峰值1000TPS左右,更多的城商行就几百TPS,中小银行交易性能并没有想象中的那么高。
而当前计算算力其实很强,一组测试数据供参考,两路鲲鹏服务器48core,1主2从,交易场景性能可以测到1.8万TPS。 其实,仔细想想,只有微信支付和支付宝才有近10亿级的月活甚至日活,的确大家每天基本都采用这两位支付大哥来交易了,交易系统有几十万TPS,尤其双11这个给闹的,交易峰值可能更高。
但是咱们国内有200多家银行(6大行、12个股份制、130多家城商行、30家省级农信农商行,独立建设核心系统的农商行还有接近20家,还有互联网民营银行等),200多家分流移动支付流量,交易性能就没有那么多高了,现在双11拉长到1个月,叠加经济状况不乐观,民众消费欲望和需求都降级,交易性能更是持续下降。那么性能需求还是分布式架构改造的核心诉求吗?
反而不少客户反馈分布式架构时延高,跨节点交易设备众多,耗时自然就多,当然复杂度也很高,性能定位就很棘手,很多时候就找不到是谁的问题,都要卷出花来了。
跟不少客户交流发现,其实核心的交易量真心不高,核心数据库容量绝大部分集中在几百GB~10TB左右,甚至不少客户认为,90%以上的系统集中架构足够用,只有不到10%甚至更低的比例的系统才需要做分布式改造,或者叫多整几个数据分片就足够了,类似一个团队,人多了就多分几个小组而已。 而当前看到部分用户数据库分片上百,甚至上千分片,性能不够还是数据容量放不下?
数据库专家一向讲自己单分片性能很牛逼,听过某G数据库80万TpmC,那为何要这么多分片?这么多分片带来设备暴增,交易节点链条多,时延明显增高,运维复杂度极高,架构设计要极简,怎么越整越复杂,能hold得住吗?
任何事情走极左极右都是不对的。数据库专家规划这么多分片,会不会是为了一点自己利益而为呢:分片多,数据库软件许可就多,才能卖得多嘛。还有经常看到服务器本地盘IO能力不行,数据库专家说需要扩CPU,也就是要扩1主多从的服务器和数据库许可,存储IO能力和算力是两个完全不同的东西,怎么不分析IO能力和时延不行的核心原因是什么再对症下药呢?
近期也看到,中央金融工作委员会也明确指出,说得非常非常严厉严苛了:不切实际的乱创新,伪创新,会给金融机构带来巨大的风险和损失。业务和科技也是一样的,这是值得深思的地方,最终都会回归业务本质,实事求是。
文章来源:毕须说