开发者社区> 桐碧2018> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

POLARDB在金融级数据库架构演进中的应用

简介: 深圳法大大网络科技有限公司曾经是POLARDB最大的用户,其数据库架构演进也在阿里云上发生了多次迭代,并最终取得非常好的效果。本文中深圳法大大网络科技有限公司副总裁兼CTO陈立清就为大家分享了法大大在业务演化过程中数据库方面遇到的一些问题,在这些问题发生之后的解决方案,以及最终借助POLARDB的实施效果。
+关注继续查看

深圳法大大网络科技有限公司曾经是POLARDB最大的用户,其数据库架构演进也在阿里云上发生了多次迭代,并最终取得非常好的效果。本文中深圳法大大网络科技有限公司副总裁兼CTO陈立清就为大家分享了法大大在业务演化过程中数据库方面遇到的一些问题,在这些问题发生之后的解决方案,以及最终借助POLARDB的实施效果。

_

法大大业务背景及问题

传统的合同寄送过程需要较长的时间,此外合同主体身份往往难以证明,并且大量的纸质合同导致企业难以管理,需要持续地投入很多的人力物力。法大大成立于2014年,主要针对于纸质合同出现的问题设计了第三方的电子合同平台,利用实名身份认证、防篡改以及区块链技术来解决合同当中安全以及合规性问题。

接下来从法大大整个业务流程来分享整个数据库使用过程中遇到的问题。国家法规中要求给每个用户主体身份颁发CA证书,而颁发CA证书的第一个条件就是为用户做实名身份认证,认证方式包括姓名和身份证号码比对以及银行卡信息比对以及人脸识别等,因此在这个过程中将会产生大量的用户数据文件。而因为需要为每个用户颁发CA证书,因此会产生大量的数字证书文件。签署电子合同的整个过程也需要记录到数据库中,因此也会形成大量合同签署文件的数据表。此外,当合同签署完毕还存在一个使用周期,当使用完成之后需要进行归档,这也会形成大量的结构化数据文件。

法大大的整个业务都是构建在阿里云上面的,使用了ECS、OSS、RDS等一系列的云产品。法大大最开始用的数据库是MySQL,而用户基本上都是高频使用电子合同的企业,他们对于业务的实时性、并发以及稳定性存在非常高的要求,而在此过程中,数据库就会成为一个使用瓶颈。上层的业务架构采用分布式,中间服务采用了微服务,所以在业务层面基本上可以实现弹性扩展,而底层的数据库部分则受限于MySQL 3TB容量的限制,这使得业务发展一度出现瓶颈。

在法大大发展过程中,在2016年1月份,当时的每天合同份数达到1万份,到2016年11月份达到了每天10万份,2017年5月份每天合同量就达到了100万份,直到今天每天合同份数达到270万份以上。目前,法大大有1000多家合作企业,累计签署合同超过7亿份。而在法大大的业务流程中,有这样几个点会出现大量文件。第一个就是证书表文件,这个文件的表空间有783G,总空间达到815G。第二个是证据表,表空间达到240G,总空间将近500G。而合同签署文件表达到17.8亿行,这是因为一份合同至少有两方以上签署。大文件的出现就带来了数据库的挑战。

在2015年,法大大数据库团队开始做读写分离,在杭州两个可用区做了双活架构,同时在数据库上做了读写分离和实例库拆分,在这阶段解决了每天10万份合同的压力。到了每天需要签署100万份合同的时候,法大大已经在北上杭深出现了核心用户群,所以在北京、杭州以及深圳做了三个数据中心,同时在三个数据中心中实现了双活。此时问题也出现了,这种数据库架构方式解决了分片区用户在使用过程中出现的业务瓶颈,但是从数据库角度而言,3T容量限制始终都会到来。这样的数据库架构也出现了诸多问题,因为有三个数据中心,那么用户在使用法大大官网的时候需要在多个数据源之间来回切换,这使得代码更加复杂。此外,在两个数据中心之间进行切换使得用户体验受到挑战。这种方式不仅无法面对3TB容量上线,其实也无法满足跨区域的要求。所以法大大想到了一个更好的解决方案——使用POLARDB。

法大大如何使用POLARDB解决业务数据困境

在新方案中,法大大在华北、华东和华南三个数据中心的数据先经过ETL清洗,之后进入POLARDB主节点中,同时利用POLARDB中只读数据库的复制特性实现读写分离,在数据库上层中增加了ES搜索引擎。这样就解决了三个数据中心的数据汇总问题。后续的用户查询以及报表应用也都集中在POLARDB上进行实现了,全国用户都集中在杭州数据节点中完成。

具体而言,法大大技术团队做了这样几件事情:使用Kafka消息队列将几个数据中心中的数据进行漫游同步,保持数据中心的核心数据一致性。为了保证数据汇总后主键的一致性,在三个数据中心中做了主键隔离。第三点就是历史上全部数据分成两个部分:生产数据和归档数据。对于归档数据首先增量复制到POLARDB上来,将POLARDB作为底层的全局数据源。此外,在POLARDB上导入了ES做全文的搜索引擎,利用多个只读节点来分片导入,加快索引的速度。在业务层面上,当全部数据汇总完成之后,对于数据相关报表分析都基于POLARDB实现。目前,法大大中还是MySQL和POLARDB并存的,因为在业务层面上还需要不断调整和深入。在数据向POLARDB迁移的过程也是不断深入的。目前,法大大在主要的合同签署功能上还是用MySQL,未来将会向POLARDB迁移。目前对于MySQL主库会实现定期清理,将这部分数据全部汇总到POLARDB数据库里面。

实施效果评价

从实施效果上来看,POLARDB能够100%兼容MySQL,对于法大大而言,可以通过DTS非常平滑地将数据从MySQL迁移到POLARDB,减小了工作量。此外,POLARDB自带读写分离机制,并且提供了7*24小时的高可用,同时也节省了很多的成本。计算和存储分离的架构设计解除了数据库3T存储容量的限制,用户可以根据自身需要实现数据库扩容的增长。并且POLARDB具有较强的并发高性能查询能力,因为采用了读写分离的架构,支持多路应用服务器并发访问,提供了企业级的高性能、高可用的能力,提高了查询的性能。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
带你了解内嵌数据库H2
对于后端开发来说,在开发过程中,我们基本时时都在与数据库打交道。我们一般使用的数据库都有MySQL、SQL Server、DB2,以及NO SQL里的Redis和MongoDB,还是就是现在的流行的云数据库,而其中使用频率高的应该是MySql,这些数据库有什么特点呢,除了云数据库你都得安装,而今天要说的数据库是H2不需要那么复杂,不需要安装,但是其作为内嵌数据库,数据其实是保存在内存里的,重启后数据就没了,适用于初学者学习和一些特殊场景使用。
27 0
AnalyticDB for PostgreSQL 空间数据分析实战
数字经济时代,数据是其关键的生产资料,而空间信息作为一重要属性集和模型特征集在业界形成广泛共识。政府层面,美国911之后,通信运营商为政府相关部门(如公安、交通、应急指挥等)提供手机定位信息受法律保护;社会部分行业,尤其涉及GIS、交通、物流、吃住行游、自动驾驶等,无不与空间信息强相关。由此,空间数据的存储、空间查询与分析等特性成为数据库的标配。本文主要介绍如何利用AnalyticDB for PostgreSQL对空间数据进行管理和分析应用。
1530 0
springboot--springboot+mybatis多数据源最简解决方案
说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务。我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解决方案,还有的是利用aop动态切换,感觉有点小复杂,其实我只是想找一个简单的多数据支持而已,折腾了两个小时整理出来,供大家参考。
6460 0
金融企业从自建MySQL数据库迁移RDS方案
原作者:阿里云解决方案架构师,云帅。金融企业客户对于数据库提出了更高的要求,而RDS可以很好的满足这些需求。对于自建数据库的企业,怎样迁移到云数据库RDS,本文详细展示了一个迁移案例的整体步骤。
5881 0
网站平台架构演变史(三) - 数据库表的查询优化
上篇说道了数据库读写分离,对于大型网站来说这么说是十分有必要的。数据库在整个互联网架构中担当的角色无法有两个,存储和运算,很多时候这两个是并存的,但是在后期,对于上亿条数据来说,让数据库既要存储,又要运算,那么是这是不可行的,为了保证性能,我们仅仅只需要最大化利用DB的存数就行了,连数据库之间的外键管理都不需要,只要有对应的id即可。
844 0
+关注
桐碧2018
数据库技术品牌和运营
45
文章
0
问答
来源圈子
更多
让用户数据永远在线,让数据无缝的自由流动
+ 订阅
相关文档: 云数据库 OceanBase 版 可信账本数据库 云原生关系型数据库 PolarDB PostgreSQL引擎
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载