im电竞·(中国电子竞技平台)-共建电竞产业未来

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战-im电竞

im电竞

游戏资讯

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战

  近年来,用户对视频内容的需求呈现爆炸式增长,这对平台的技术架构和数据管理能力也提出了更高的要求。咪咕视讯作为国内领先的综合视频服务平台,全场景月活用户高达 4.98 亿。在这一庞大的用户生态背后,咪咕采用 TiDB 作为节目分发平台的核心数据库,承载所有媒体资讯、节目和赛事的元数据,成功支撑了平台的高效运行和内容分发,也顺利完成了多项知名直播赛事的转播,包括欧洲足球联赛、NBA、CBA、中超等顶级赛事,在提升和保障用户体验方面发挥重要作用。

  本文将全面介绍 TiDB 在咪咕视频的应用及收益、数据库选型思路与测评维度、TiDB 在咪咕视讯后续的应用方向与计划。

  IM电竞官网

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图1)

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图2)

  TiDB 在咪咕视频中的应用场景主要集中在内容分发平台系统,采用双中心部署架构(共 30 节点)。内容分发平台作为后端核心系统之一,承载着媒体资讯、内容分发和体育赛事等关键数据。该系统的需求特点如下:

  结合上述需求及调研结果,我们认为 TiDB 是最契合咪咕内容分发系统需求的数据库。

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图3)

  :用 1 套 TiDB 集群换了 4 套 MySQL MHA 集群+ 1 套 Oracle RAC + ADG 集群 ,除了可以减少高配裸金属的数量,还去掉了诸如 SAN 存储、光纤交换机、HBA 卡等特殊设备。

  :项目系统工程量中数据库开发和实施相关人力约 4 个多人月,主要为验证和测试。

  降低“有状态性”(主从有别),从复杂的 MHA+Zabbix+Thanos+Log+APM+XScripts+Java... 运维体系,转变为 TiUP+Dashboard+Grafana,降低运维自身的成本和风险。

  :通过 CICD 前置时间的缩短,将技术人员从繁琐低价值工作解放。这方面的效益不太好测量,但影响却是相当大。

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图4)

  在选择 TiDB 的过程中,我们也会考虑以下几个问题:分布式数据库能做哪些事情?有哪些是以前做不到的、分布式独有的新功能?是否符合需求?能否以更低的代价和风险实现?以及一些现实问题,如价格和服务支撑,目前市场的反应和排名情况等等,了解完这些也让我们对 TiDB 的产品更有信心。

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图5)

  在选型过程中,我们也建立了自己的评价体系,以及具体的标准、数据模型、方法、工具和指标,供大家参考。

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图6)

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图7)

  咪咕每一次赛事运营的更新,会发生十几个包含多表关联和大型范围扫描的 SQL,产生五位数的回表。在高并发批量更新场景下,索引回表会消耗大量 CPU 资源,从而可能拖慢数据库集群的性能。究其原理,存储引擎 TiKV 的 LSM 树优势在于将随机写转换成顺序写,写吞吐可以说是相当强劲的;而在读方面,由于会涉及对 Memtable 和跨层 SortStringTable 文件的访问,虽然文件有内置 Bloom 过滤器加速,但在高并发数据扫描下发挥受限,尤其面临大量二级索引带来的严重回表。另一方面,在读写分离的颗粒度上,MySQL 是实例级别的,而 TiKV 是区块(Region)级别的,即使我们开启了 follower read,在没有做好充分的资源隔离下也可能会互相影响。

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图8)

  于是我们针对这部分数据做了重新的设计,让它们成为自描述的文档结构。数据更新的部分,则利用 TiCDC 将变更流传递合并到结果集上。数据访问时直接定位到文档,避免了前端系统对后台库直接进行大型关联和扫描,负载流量显著降低。

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图9)

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图10)

  TiDB 在咪咕分发系统的应用只是我们的第一个试点,后续也希望能把 TiDB 应用到更多合适的场景。

  K8S + TiDB 的过渡历程 :直接用裸金属构筑的数据库服务层只是过渡的目标形态,它的使命是集约当下分散的数据库集群。我们是计划进一步走向容器化的数据库服务层。具体考虑如下:

  因此,具有成熟的容器化部署能力,也是我们在选择 TiDB 的一个重要考虑因素。

  IM电竞官网

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图11)

  用户中心系统是一个包含了账户信息、交易订单、权益等关键数据的系统,是核心中的核心。一级是中央系统,二级是前置在各个业务板块的子集,在咪咕视讯的是二级系统。由于数据量异常庞大,目前采用的是纵横结合的大型分库分表的数据库群落技术。纵向是指根据业务模块单独建立数据库集群,横向是指在纵向的基础上对每个集群再做分库分表,每个集群的分桶数在 48-64 个不等,单片数据在 1-10 TB,不算主备冗余。

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图12)

  这些挑战也是我们最终要努力攻克的对象。我个人认为,上述的挑战很大程度上与 TiDB 的设计出发点、功能特性是非常契合的,所以也非常期待能携手 TiDB 一起攻克咪咕后续的一些挑战。

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图13)

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图14)

  咪咕大概是 2018 年左右正式开始对分布式数据库进行研究的,到现在为止我们看到和测试过太多的国内产品。但是在当时,敢用 LSM 树而不是 B+ 树做存储引擎,敢做分布式存算引擎分离的,能够行列副本共存、优化器路由分流做 MPP shuffle 的,市面上真的真的非常非常地不多见。比较多的是精致的分库分表外挂,或某些知名国外产品的模仿版。

  TiDB 的产品给我的印象是极具冲击性的,那么大胆、不随大流。验证和使用下来,效果也是切实的。可以看到,它的背后是有认真的思考的,并且是有敢于追求的魄力的,产品设计者一定是自信和热情的。

咪咕视讯携手 TiDB 攻克内容分发核心系统挑战(图15)

  法国存在主义哲学家萨特说过,人并不是由既有的东西来决定,而是在自己持续的选择中才成为自己。DBA、架构师们也是一样,我们并不是由头衔、外部的身份或待遇来决定的,而是在对数据库技术、对工作、对生活持续的探索,和对困难的不断的挑战中,塑造和成为自己。希望本次分享的 TiDB 在咪咕的实践和思考能给大家带来有价值的参考。

  特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

  马云携星链计划重出江湖 引爆联通电信罕涨停 万亿级空天信息

  北京奔驰销售公司总裁段建军:部分品牌采用操控水军、抹黑竞品等恶意竞争手段

  上海街头,这一幕太破防!有人等红绿灯的42秒要吃完一顿饭...人大代表呼吁→

  恭喜HLE!拿下LCK冠军!Zeus太猛了,Zeka保持BO5决胜局100%胜率

  《编码物候》展览开幕 北京时代美术馆以科学艺术解读数字与生物交织的宇宙节律

关键词:

最新资讯