转转数据库架构构建之道

本文系 北京 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 将带大家走进爱奇艺,聊聊数据库技术选型那些事儿,欢迎大家点此报名


相关阅读:

TiDB 在转转的标准化之路

转转业务开发对 TiDB 的使用心得

1赞

期待参加下一次的线下活动

欢迎关注 TUG 北京 9 月份走进爱奇艺的技术沙龙活动哦: 爱奇艺技术沙龙——不同业务场景下的数据库选型思路