微众银行数据库架构演进及 TiDB 实践经验
发布日期:2021-05-16 17:02:02 浏览次数:29 分类:精选文章

本文共 1337 字,大约阅读时间需要 4 分钟。

微众银行数据库架构演进与TiDB实践经验

胡盼盼、黄蔚


一、微众银行数据库架构演进

2014年,微众银行成立之初,就非常有前瞻性地确立了数据库的基础架构方向:去IOE(IBM、Oracle、EMC),走互联网模式的分布式架构。传统银行IT架构依赖Oracle等大型商业数据库,侧重于高并发、高可靠性场景,这种架构不仅成本高昂,还难以适应快速变化的业务需求。

微众银行选择了TDSQL作为核心数据库之一。TDSQL基于MariaDB内核,结合MySQL半同步机制,在性能和数据一致性方面均有显著提升。该系统支持Shard模式和无Shard模式(单实例),并集成了管控平台和智能运维功能。

基于DCN(Data Center Node)的分布式架构被设计,DCN承载用户数据,实现了集群规模的水平扩展。这种架构简化了数据库的部署和管理,同时降低了业务开发成本。

IDC架构则保持了两地六中心的布局,深圳五个机房作为生产中心,上海的跨城机构作为容灾中心。网络延迟控制在2ms以内,确保数据可靠性和网络稳定性。

二、微众银行TiDB数据库实践

Why TiDB?

  • NewSQL特性:TiDB支持在线DDL、分布式事务框架(基于Raft)、存储与计算分离等特性,与MySQL兼容性强。
  • 开源与活跃社区:TiDB作为开源项目拥有活跃的开发者社区,版本迭代速athamodern化特性。

TiDB架构简洁优雅,包括TiKV存储引擎和PingCAP协调服务,支持大值写入(通过Titan引擎优化)。TiDB 3.0版本新增Region合并工具和增强的性能特性。

TiDB评估与测试

  • 支持在线DDL:无需锁表,避免了MySQL的高阻力操作。
  • 乐观锁事务模型:适合高并发场景,但需要与业务逻辑兼容。
  • 同城IDC部署与切换测试:验证TiDB在跨机房环境中的可用性和故障恢复能力。

TiDB在微众的部署模型

  • 同城三机房部署:TiKV存储层跨三机房,提供容灾能力。
  • 容灾副本:通过TiDB Binlog实现数据实时同步,确保高可用性。

三、微众银行TiDB业务实践

1. 贷款核心批量场景

  • 业务特点:每日线上数据生成数亿级别,需要快速批量处理和ETL输出。
  • 问题
    • 运行时间接近2小时
    • 数据分散在多个DCN,架构复杂
    • MySQL主备复制性能不足
  • 优化方案
    • 将批量数据汇总到TiDB集群中处理
    • 使用PingCAP DM工具进行数据迁移和增量同步
    • TiDB 2.1版本将批量时间缩短了45%,3.0版本进一步优化。

2. 数据存证系统迁移

  • 场景特点:存储具有法律效力的证据数据,可读并不可删除。
  • 迁移原则
    • 数据无丢失、数据无错
    • 服务敏感度高,尽量无缝切换
    • 后退方案可随时回切至MySQL
  • 迁移方案
    • 使用TiDB DM进行数据同步
    • 确保主键随机生成,避免MySQL一致性问题
    • 避免触发器、存储过程等复杂功能,确保迁移安全

四、总结

TiDB是一款非常优秀的分布式关系型数据库产品。在银行场景中,充分发挥其NewSQL特性与高可用性的优势。随着技术日趋成熟,TiDB被用于更多适合的场景,未来将有更多经验分享。


(注:本文根据胡盼盼、黄蔚在TiDB TechDay 2019北京站及深圳站上的演讲整理)

上一篇:PingCAP 校园招聘 2020 正式启动!
下一篇:TiDB TechDay 2019 · 杭州站落幕,全国巡讲圆满收官!(附资料链接)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月12日 18时50分22秒