【企业级分布式数据库实践专场——网商银行数据库最佳实践】
网商银行,作为中国首批试点的民营银行之一,致力于提供普惠金融、小微企业和农村金融的服务。为了支撑高并发的金融交易和海量数据处理,该银行在2015年6月25日开业时采用了基于OceanBase的数据库架构。OceanBase的引入,旨在打造一个金融云,实现弹性扩容和高可用性。
在存储底盘的发展历程中,网商银行经历了从OceanBase 0.5到2.0的升级。早期,存储架构依赖于RDS、Hbase、Tair和OSS等组件,随着技术的发展,逐渐过渡到三地五中心的单元化架构和多云弹性架构。2020年,银行进一步实现了云原生和全站加密,增强了数据安全和系统的稳定性。
在数据库的弹性方面,OceanBase 2.0引入了分库分表和表分区的设计,结合数据库自治能力,实现了最小影响面的架构。这种设计能够有效地解决热点问题,提供多维度查询的能力,比如在银行合约和保险核保场景中。分库分表适用于单元化场景,而表分区则适用于多维查询,两者结合可以优化批量处理任务,例如季度结息操作。
在写库架构的演进中,网商银行采用了表分区策略,通过按分区打散数据,提升了导入和查询效率。例如,在团体险和银行工资代发场景,企业名单被分散到不同的分区,实现多分区并发导入,显著提高了性能。此外,全局索引的使用,尤其是在核保场景,提供了透明且高效的多维查询,而对业务的影响几乎为零。
在数据库选型上,网商银行强调一致性协议的重要性,避免了主备模式的局限性,如异步复制可能导致的数据不一致问题。采用主k主备模式,结合一致性协议,不仅解决了数据一致性问题,还确保了在各种故障场景下的快速恢复,如单机房宕机、集群故障和城市级别的故障。
网商银行的数据库实践充分展示了分布式数据库在金融领域的应用价值,通过不断创新和优化,实现了高并发处理、海量数据存储、弹性扩展以及高可用和数据安全的平衡。这些实践经验对于其他金融机构在进行分布式转型时具有重要的参考意义。