目前金融行业很多业务系统都开始偏向互联网模式进行开发设计。但不同于互联网场景,支付类业务对于数据的并发性、一致性要求很高。而原生的开源数据库+中间件在分库分表的模式下有诸多限制很难做到高一致性。目前的分布式数据库很多,TiDB、 CockroachDB 、巨杉、各种云厂商的云原生产品等种类繁多,各有优势。 请问这些产品的稳定性和成熟度如何,是否有实际的测试对比。
您提到这些数据库产品有开源,也有商业的,但我们均未测试过,我们考虑的还是产品背后强大的研发力量以及成熟的运营体系。还是在文中提到的观点,要看自己的需求,分布式数据库并不是唯一的选项,如果传统数据库可以解决问题,就选择传统的集中式数据库。我们在分布式数据库选型时,第一考虑的就是不采用开源的,只从商业的产本中选,且在大型金融企业中进行过商用。
收起分布式数据库已经逐渐走入金融行业核心系统视野中,尤其是国产原生分布式数据库。
目前头部的几家主要是蚂蚁OB、巨杉、TiDB。他们各有特色。OB拥有成本最高,应用适配最为复杂,银行应用案例不多,但是以大行为主。巨杉的银行案例最多,MySQL和PG兼容最好,高可用、容灾、一致性等能力已经经过验证。TiDB的互联网案例最多,互联网应用的适用程度较高,银行案例不多,拥有成本较高。
对比测试一般还是要把厂商拉过来现场直接做,用自己的应用来验证兼容性、功能和性能。那些所谓基准测试的实际意义不大。
现场测试过程中也可以体会到技术支持团队的技术实力。因为购买之后的售后技术支持服务非常重要。
稳定性你所提到的这些厂商都有在金融行业的落地案例。不得不提的是阿里OceanBase具体是用在支付宝体系中,算是一个很好的证明,巨杉我用过,金融行业中打下不少份额,并且都是在生产中获得验证。
分布式数据库毕竟跟传统数据库有所不同,你所提到的一致性是一个很好的例子,一致性应该叫产品直接去管控,在这块OceanBase貌似还没有完全依赖自身产品,蚂蚁金服还是在数据库外层包裹了一层应用系统作为一致性统一管控,但是这块已经不是什么太大技术难度,其他厂商都已经做到了。
并发一直是分布式数据库的优势所在,不同于分库分表,每家底层也不大统一,基本上算是核心竞争力,但是对并发的支持都是非常友好,毕竟可扩展性非常方便的利好了并发。
我这样建议,你按照这个思路进行评判,首先确认你们的使用方向,到底是OLTP还是OLAP,这样一下能排去一般的产品因为这里没有一家能做到同时兼顾,然后是技术栈比方说说MySQL还是postgres家族,然后是迁移成本,维护考量技术积累等等。别看上面提到的厂商多,但是实际最后在你手里的估计也就一两家,然后选择能接受的报价(绝对不能用开源),挑选服务团队
收起