TiDB 在咪咕云原生场景下的实践

news/2024/5/19 13:12:44 标签: 数据库, TiDB, mysql, 分布式

导读

咪咕是中国移动旗下的视频科技公司,门户系统是其核心业务之一。 为满足用户的多样化需求,咪咕计划对其数据库进行升级。 经过对中国主流国产数据库的测试评估后,咪咕选择了 TiDB,并成功将其落地于门户系统云化项目。 TiDB 为咪咕在业务增长、高可用性、性能提升、数据整合等方面带来了显著价值。 未来,咪咕计划拓展 TiDB 在更多业务场景中的应用,助力其业务创新和降本增效 。

咪咕简介

咪咕视讯科技有限公司(简称:咪咕)是中国移动旗下咪咕文化科技有限公司的全资子公司,是中国移动在视频领域的唯一运营实体,主要产品包括咪咕视频、咪咕影院、咪咕直播等。截止 2023 年 6 月,咪咕视频全场景有效月活用户数超 3.6 亿,数字内容涵盖 4818 万条视频、10000+ 部精彩大片、院线票务覆盖 12000 家影院、1200+ 路 音视频直播等。咪咕在 2023 年打造了杭州亚运会、男篮世界杯、女足世界杯、成都大运会等多个口碑视听体验 。

分布式数据库选型的能力要求

门户系统是咪咕视讯的核心业务系统之一,提供的业务功能包括大屏挂件、直播中台、应用管理平台、策略平台、大屏展现、直播展现、任务调度、车载服务等。这些功能直接关系到组织内外信息的高效传递和流动。门户系统的服务范围广泛,旨在满足用户多样化、灵活性、高并发和高可用需求。因此门户系统底层依赖的数据库需要具备高性能、高可用、灵活弹性的特点,同时还需要具备方便业务开发的用户使用体验,满足门户系统云化微服务改造的要求。

随着业务的快速发展,特别是在 世界杯、热门赛事、热播电视剧等超级流量爆发下 ,门户系统经历了多次改版、扩容,仍然不能满足飞速增长的日活用户及用户个性化体验的要求, 在灵活性、插件化、微服务、云化部署、数据库服务等方面有待升级 。咪咕计划通过数据库的原生分布式改造,全面提升数据库的服务能力,选型的要求包括:

 原生分布式架构

满足业务快速变化的需求,不对业务产生过多的侵入,数据库须采用原生分布式架构,计算和存储可按需扩展,具有原生分布式的高可用机制,非中间件分库分表架构,适配云原生和微服务环境。

 后端引擎能力

支持本地和分布式事务,满足 ACID 属性要求,具有分布式一致性共识机制,达到常规的事务隔离级别,并能正确高效地处理事务异常,具有全局索引能力。

 前端开发兼容性

数据库须兼容和延续现有的应用架构和代码,具有相应的开发兼容性、字符集、客户端的前端支持要求。

 恢复和备份能力

支持物理备份、逻辑备份、全量和增量备份,支持将集群恢复到任意时间点和闪回,提供金融级的灾备能力。

此外,安全能力、可视化运维、技术生态、售后服务体系的支撑能力也成为数据库选型的考察重点。咪咕技术团队对中国主流的国产数据库做了 9 类、34 科、共 244 个项目的测试评估,TiDB 以最高分入选。

TiDB 在咪咕云原生场景的落地

咪咕技术团队从技术论证、前期准备、分批割接、并行运行、完全割接等环节出发,制定了稳妥的实施方案,保障了 TiDB 在门户系统云化项目的落地。 咪咕在 3 个独立的资源池分别部署 3 套 TiDB 集群,集群间使用 TiCDC 组件完成数据同步,业务连接到主集群进行读写,并可实现快速的容灾切换。通过访问控制策略,使得备集群在作为应急备援切换目标的同时,也保持着多中心多活只读服务的承担,充分发挥资源能力。

微服务架构示意图

咪咕门户系统从 2023 年 7 月切割到 TiDB 后,已经稳定运行超过 100 天 ,期间经历了女足世界杯、成都大运会、男篮世界杯、杭州亚运会四个重大赛事业务高峰的压力。在重大赛事期间 TiDB 运行非常平稳, 业务峰值流量 QPS 大于 20K,TPS 大于 8K,且平均响应延时低于 100ms 。

TiDB 在落地过程中得到了咪咕门户改造项目负责人的高度评价:

TiDB 总体上能够较好适配咪咕当前的技术架构和运行系统,满足开发和运维关注的长期发展的重点,包括微服务框架、开发兼容、运维质量和效率提升等,所遇到的问题都能较快地解决。

应用价值

 匹配业务增长,轻松应对瞬间高峰

TiDB 原生分布式架构具备灵活的弹性伸缩能力,可匹配业务的特点分别扩展计算与存储能力,提供强劲的性能支持。如在大促活动前进行快速的扩容,活动中短时高峰实现应急在线扩容,整个过程对业务透明,无需人工干预。

 高可用架构,提升更好的业务连续性

实现数据库和应用系统多中心提供对等服务,充分发挥集群所有节点的工作能力,并且互为冗余,既提高利用率又降低风险。TiDB 在集群内部各个组件均采用冗余设计,避免了任何单点的故障,通过 TiCDC 同步数据到异地灾备集群,为实现跨机房的高可用性提供了保障。

 具有更好的性能,承载更多业务

通过实际运行对比,TiDB 集群在整体硬件资源少于原 MySQL 集群的情况下,达到原有 MySQL 集群性能的 1.88 倍,即在原有硬件资源的基础上提升了约 90% 的业务承载能力。

 为数据整合、挖掘数据价值提供基础

原有架构的几十套 MySQL 数据库相互独立,烟囱式发展,无法将各分散的业务进行关联分析,从而挖掘数据价值。TiDB 将原来十几套 MySQL 数据库归集到一个集群中,实现多个业务系统数据的实时汇聚、实时反馈、实时洞察和实时变现,带来极致的用户体验。

未来展望

随着 TiDB 7.x 版本的发布,TiDB 引入了资源管控(多租户)、DDL 并行执行框架等新特性。咪咕视讯将积极探索这些新功能,逐步拓展 TiDB 在更多业务场景中的应用,并将 TiDB 最佳实践推广至其他子公司,助力业务创新和降本增效。


http://www.niftyadmin.cn/n/5222929.html

相关文章

从 0 搭建 Vite 3 + Vue 3 Js版 前端工程化项目

之前分享过一篇vue3+ts+vite构建工程化项目的文章,针对小的开发团队追求开发速度,不想使用ts想继续使用js,所以就记录一下从0搭建一个vite+vue3+js的前端项目,做记录分享。 技术栈 Vite 3 - 构建工具 Vue 3 Vue Router - 官方路由管理器 Pinia - Vue Store你也可以选择vue…

C++不同平台下的RTTI实现

给定一个含有虚函数的对象的地址&#xff0c;找到对应的类名&#xff0c;不同平台下方法也不同&#xff0c;这是由于RTTI实现并没有统一的标准。 Linux&#xff1a; #include <iostream> #include <typeinfo>class Person { public:virtual void func(){std::cout…

使用opencv实现更换证件照背景颜色

1 概述 生活中经常要用到各种要求的证件照电子版&#xff0c;红底&#xff0c;蓝底&#xff0c;白底等&#xff0c;大部分情况我们只有其中一种&#xff0c;本文通过opencv实现证件照背景的颜色替换。 1.1 opencv介绍 OpenCV&#xff08;Open Source Computer Vision Librar…

基于振弦式轴力计和采集仪的安全监测解决方案

基于振弦式轴力计和采集仪的安全监测解决方案 振弦式轴力计是一种测量结构物轴向力的设备&#xff0c;通过测量结构物上的振弦振幅变化&#xff0c;可以确定结构物轴向力的大小。采集仪是一种用于采集和存储传感器数据的设备&#xff0c;通常与振弦式轴力计一起使用&#xff0c…

Pytorch:torch.utils.data.random_split()

random_split() 函数说明&#xff1a; torch.utils.data.random_split(dataset, lengths, generator<torch._C.Generator object>) 参数&#xff1a; dataset(Dataset) -要拆分的数据集lengths(序列) -要产生的分割长度generator(torch.Generator) -用于随机排列的生成…

ubuntu配置免密登录vscode

1、配置免密登录 &#xff08;1&#xff09;在windows系统cmd下运行命令 ssh-keygen 一路回车&#xff0c;将会在C:\Users\用户名\.ssh目录下生成两个文件&#xff1a;id_rsa和id_rsa.pub。如下图所示。 &#xff08;2&#xff09;进入.ssh目录。如果想使用root用户&#xff0…

C# 获取硬件信息工具类

写在前面 通过性能计数器类 PerformanceCounter 传入计数器名称&#xff0c;获取对应的系统指标数据&#xff0c;以便进行分析和参考。 通过System.Management类库中的ManagementObjectSearcher类实现对管理信息的查询&#xff0c;比如&#xff1a;主板信息、内存信息、硬盘信…

Elasticsearch 线上实战问题及解决方案探讨

1、reindex相关问题 1.1 问题描述 我有 1tb 的一个大索引若干&#xff0c;要迁移到另外一个新集群去&#xff0c;有没有好办法&#xff1f;reindex好像会中断...... reindex 是不是就算设置了频率也会莫名的中断&#xff0c;而且没地方查到错误&#xff1f;1000多万的数据&…