
微众银行数据库架构演进及 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北京站及深圳站上的演讲整理)
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月12日 18时50分22秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
非对称加密算法——SIDH加密算法的深度分析与应用探索
2023-01-23
有了Trae,人人都是程序员的时代来了
2023-01-23
公共课计算机总复习 核心知识点(1)
2023-01-23
上下文无关文法
2023-01-23
STM8的C语言编程(14)--+PWM
2023-01-23
SpringBoot 学习笔记完整教程4
2023-01-23
【颠覆传统】Android锁屏界面全新重构:深度解析SystemUI横竖屏智能适配秘诀
2023-01-23
Servlet的三个基本方法
2023-01-23
AI驱动的企业信用评级模型可解释性增强系统
2023-01-23
政务服务小程序代码实战:数字政府与智慧政务全攻略
2023-01-23
反 TypeScript
2023-01-23
微信小程序wx.previewImage实现图片预览
2023-01-23
数据分析与处理方法
2023-01-23
如何通过 WebSockets 实现 Python 和 JavaScript 的实时通信
2023-01-23
分享下自己总结的Git常用命令
2023-01-23
AIGC在量子计算研究中的应用:算法优化提示词
2023-01-23
三种引流方法&案例分析
2023-01-23
打开有惊喜
2023-01-23