在支付领域各占一席之地的财付通和京东金融很少在公开场合分享各自在数据库架构设计上的问题和思考,在SACC大会的数据库架构设计专场,财付通和京东金融来了一次正面碰撞,来自摩拜、360的资深专家也加入了这场纷争。
京东金融数据库团队负责人高新刚:京东金融数据库多场景架构实践
面对支付场景对数据库高可靠、高可用的更高要求,京东金融目前的数据库架构采用MHA、CDS、HDB;数据治理架构选用R2M、DBRep和HCenter。整体架构自底层向上分为三个部分:大数据层、DB层和应用层。大数据层主要由数据仓库、HCenter、DBRep和ETL组成,DB层也就是上述提到的三大数据库架构支撑,应用层主要是业务应用,由JMQ、R2M和直连组成。
DBA可能无法直接为企业带来价值,但可以降低运维成本。京东金融的DBA团队通过DB分级和DB孵化优先为重要业务配备资源,进行分级调控,最终实现成本降低的同时保证业务高效可用。
财付通高级DBA成江东:财付通交易核心演进之路
成江东,财付通高级DBA,负责财付通分布式交易核心与账户数据库运维,网名“最醉红楼”。
从每天10万笔到每秒峰值100万笔交易,腾讯财付通经历了哪些改变?在这种情况下,腾讯财付通的数据库架构是如何设计的呢?
从磁盘柜、冷热灾备、同城双活、核心双活+双向复制到核心N地N中心,财付通的数据库架构演进之路随着交易量的增加不断给出新的解决方案。成江东现场打趣道,之前火热兴起的去IOE活动与我们一点关系也没有,因为我们从来就没用过这些。财付通从MySQL 4.1到MySQL 5.7,一直在使用MySQL数据库。自2014年至今,财付通一直在使用分布式管控系统:
未来,财付通在数据库架构上的设计将会向着余额支付全路径的条带化、更多的逻辑SET、跨IDC数据强一致,实现秒级IDC切换、资源云化,动态伸缩的方向发展。
360基础架构组技术经理陈宗志:大容量redis存储方案--Pika
Pika是360的开源项目,是360所有DBA 和基础架构团队一起设计开发的大容量redis解决方案,完全兼容redis 协议, 用户不需要修改任何代码进行迁移。陈宗志表示,Pika力求在完全兼容Redis协议、继承Redis便捷运维设计的前提下通过持久化存储的方式解决Redis 在大容量场景下的问题。
目前的网络模块Pink支持pb, redis, pg, http等协议,可抽象各种不同类型线程:DispatchThread、WorkThread、BGThread。存储引擎--Nemo实现了Hash, List, Set, Zset 等数据结构、Rocksdb 启动只需要加载log 文件、Rocksdb使用的本地硬盘, 对SSD盘友好。日志模块--Binlog顺序写文件, 通过Index + offset 进行同步点检查,解决了缓冲区小的问题,支持全同步与增量同步。
陈宗志表示,由于Pika是基于内存和文件来存放数据, 所以性能肯定比Redis低一些。但Pika容量大、加载db速度快、备份速度快、对网络容忍度高以及性价比高,这些可以很好地补充Redis的不足。
摩拜数据库团队负责人李凯:开源技术的线上应用之路
作为新兴独角兽企业的代表,摩拜深深改变了大众的出行方式。李凯表示,目前摩拜用户已达1.5亿,单车数量700万+,每日访问80亿,数据总量逼近300亿。面对如此庞大的数据体系,摩拜是如何管理的呢?
李凯表示,目前数据存储面临的主要问题是自身稳定性、多AZ/Region容灾、业务国际化/单元化部署、业务持续增长、自动化运维等。摩拜使用的关系数据库是MySQL,文档数据库是MongoDB,缓存正在从Redis向Codis迁移,分布式数据库采用TiDB,摩拜主要采用了腾讯云的服务,之后也会逐渐向线下迁移。
之后,摩拜的主要技术方向是全自动SQL审核、Codis自动伸缩以及TiDB,TiDB主要有RocksDB Compaction优化、Region物理隔离、独占物理机、多模型统一存储SQL,KV,Cache等方向。
不难看出,各大厂的数据库架构设计都历经了多个阶段,随着云计算时代的到来,搭建简易数据库架构的门槛并不是特别高,很多提供云服务的企业都有各种接口方便整个过程,但技术负责人应该尽早考虑后续是否走向线下的问题。