本文系 北京 TUG 线下活动 “全面了解转转的 TiDB 实践” 演讲实录,分享人:转转首席架构师 孙玄
大家有没有思考过架构设计的出发点是什么?为什么会有这么多的架构?或者说你的公司为什么要选择某种架构?很多同学说原因很简单,因为BAT这些大公司在实施,所以我也要这样做。然而这些问题背后有没有一个普遍的东西在指导我们前进呢?就让我们跟着孙玄老师一起走进转转数据库架构构建之道吧。
转转首席架构师孙玄老师的分享围绕架构设计哲学本质、主要业务场景、数据库选型、架构介绍、未来展望几部分展开。
孙玄老师认为架构哲学设计的本质是降本增效,即降低业务成本,增加开发效率。
在围绕降本增效的前提下,孙玄老师相信大家都听过这句话:“一切脱离业务场景谈架构都是耍流氓”。但是谈架构仅仅考虑业务场景吗?这是不行的!还要考虑时间场景、人力场景、技术能力场景、运维场景等等各种场景,所以说这句话正确的说法应该是"一切脱离场景谈架构都是耍流氓"。
TiDB 在转转应用地范围广,我们也是基于上述哲学来指导选型的。转转是一个标准的电商,主要场景有:用户类场景、IM 类场景(这是转转切 TiDB 的第一个场景,也是电商的核心场景)、商品类场景和交易类场景。这些场景的特点是数据量大,对于传统的关系型数据库 MySQL 来说面临分库分表的问题,所以这些场景都由分布式关系型数据库 TiDB 支撑。
转转的数据库有以下类型:MySQL 主要面向线上关系型数据库,以及对事务有强依赖业务;TiDB 是 MySQL 的场景补充方案,用于大容量集群,主要解决分库分表问题; 缓存数据跑在Codis(不支持持久化),目前已超过1200个节点;ZZKV 是转转自研 KV 数据库,在 TiKV 的基础上封装了协议,定位于缓存持久化方案。
转转数据库架构主要经历了标准化、自动化、平台化阶段,目前正在探索智能化,向“降本增效”方向努力。
标准化:针对各类数据库制定了对应的标准,统一部署管理;
自动化:自动化部署、管理,提高运维效率,降低人力成本;
平台化:数据库平台 (ZZDB),快速响应业务需求,精细化管理,提高资源使用率,降低投入成本;
智能化:通过人工智能技术提高服务效率,降本增效。
数据库架构层面,MySQL 目前主要支持的版本有5.5 、5.6、 5.7,以 5.7 为主;数据库高可用参考 MHA 思想,自研 ZZMHA 用于适配转转基础环境。
目前正在详细测试 MySQL 8.0 MGR,为下一代数据库高可用方案做准备。
Codis 在原来的基础上做了一些外围治理工作,包括管理系统、监控系统及负载均衡系统。3.X 基于 Redis-3.2.8 分支开发,主要解决单机容量问题,Codis 内存容量动态扩容。
为了解决大数据量下分库分表问题,单机存储容量问题,经过调研测试,最终选择了 TiDB,提高开发效率,降本增效。
对于未来,转转有以下几点展望 :将引入 MySQL 8.0 MGR 高可用架构;TiDB 容器化试点,把节点跑到云上; 加强和开源社区交流,共同优化产品。
如果你对孙玄老师的分享有任何疑问,欢迎在评论区留言与我们交流!
9 月 22 日,北京 TUG 将带大家走进爱奇艺,聊聊数据库技术选型那些事儿,欢迎大家点此报名。
相关阅读: