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

导读

咪咕是中国移动旗下的视频科技公司,门户系统是其核心业务之一。 为满足用户的多样化需求,咪咕计划对其数据库进行升级。 经过对中国主流国产数据库的测试评估后,咪咕选择了 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.mzph.cn/news/189565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统之centos7编译安装Python 3.8

前言 CentOS (Community Enterprise Operating System) 是一种基于 Red Hat Enterprise Linux (RHEL) 进行源代码再编译并免费提供给用户的 Linux 操作系统。 CentOS 7 采用了最新的技术和软件包,并提供了强大的功能和稳定性。它适用于各种服务器和工作站应用场景&a…

分布式架构demo

1、外层创建pom 版本管理器 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version><relativePath/> <!-- lookup parent from repository…

鉴源实验室 | 汽车网络安全攻击实例解析(三)

作者 | 张璇 上海控安可信软件创新研究院工控网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 引言&#xff1a;随着现代汽车技术的迅速发展&#xff0c;车辆的进入和启动方式经历了显著的演变。传统的物理钥匙逐渐被无钥匙进…

栈会溢出吗?什么时候溢出?方法区会溢出吗?

文章目录 栈会溢出吗&#xff1f;什么时候溢出&#xff1f;方法区会溢出吗&#xff1f;方法区会发生溢出。常见的场景还有&#xff1a; 今天跟大家来谈谈栈方面会不会溢出这么一个问题&#xff0c;以及方法区会不会溢出 栈会溢出吗&#xff1f;什么时候溢出&#xff1f;方法区会…

快速掌握Pyqt5的2种弹簧

Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图&#xff08;Item View&#xff09; 快速弄懂Pyqt5的4种项目部件&#xff08;Item Widget&#xff09; 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…

Python函数中的操作符:/、*、...

Python函数中的操作符&#xff1a;/、*、... 1、背景2、Python新操作符&#xff1a;/与*3、Python操作符&#xff1a;*&#xff08;打包与解包&#xff09;4、Python新操作符&#xff1a;... 1、背景 在Python的一些API中&#xff0c;我们可能会见到一些这样的操作符&#xff1…

certbot—30秒部署你的HTTPS,永久免费,自动续约

在之前我已经介绍过部署反向代理的2种方式了。第一种是通过宝塔的反向代理配置然后开启HTTPS。 第二种是通过nginxproxymanager。 今天要给大家分享的是一个 certbot。 Certbot 是一个由 Lets Encrypt 开发的免费开源工具&#xff0c;用于自动化部署和管理 SSL/TLS 证书。它具有…

SpringBoot3.x + mp代码生成器(更新系列)

小伙伴们&#xff0c;有没有这样一个体验&#xff0c;每次开始写一个项目时&#xff0c;搭建项目环境&#xff0c;建entity&#xff0c;mapper&#xff0c;service&#xff0c;controller层文件的感到繁琐&#xff0c;这属实体力活呀&#xff01;然而&#xff0c;自从有了Mybat…

【二分查找】LeetCode1970:你能穿过矩阵的最后一天

本文涉及的基础知识点 二分查找算法合集 作者推荐 动态规划LeetCode2552&#xff1a;优化了6版的1324模式 题目 给你一个下标从 1 开始的二进制矩阵&#xff0c;其中 0 表示陆地&#xff0c;1 表示水域。同时给你 row 和 col 分别表示矩阵中行和列的数目。 一开始在第 0 …

【开源】基于JAVA的大病保险管理系统

项目编号&#xff1a; S 031 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S031&#xff0c;文末获取源码。} 项目编号&#xff1a;S031&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统配置维护2.2 系统参保管理2.3 大…

uniapp是否可以用elementUI等前端UI库、使用步骤以及需要注意的问题

文章目录 uniapp是否可以用elementUI等前端UI库使用方法和步骤问题如何解决 uniapp是否可以用elementUI等前端UI库 在PC端开发uniapp&#xff0c;可以用elementUI&#xff0c;因为elementUI就是PC端的。 在使用uniapp&#xff0c;选择vue2.0时&#xff0c;实测可以用nodejs16的…

java企业财务管理系统springboot+jsp

1、基本内容 &#xff08;1&#xff09;搭建基础环境&#xff0c;下载JDK、开发工具eclipse/idea。 &#xff08;2&#xff09;通过HTML/CSS/JS搭建前端框架。 &#xff08;3&#xff09;下载MySql数据库&#xff0c;设计数据库表&#xff0c;用于存储系统数据。 &#xff08;4…

三、使用CRT连接三台虚拟机

目录 1、建立连接 2、参数配置 3、设置主题,颜色和仿真 1、建立连接

【JavaSE】I/O流(学习笔记)

一、File类 1、构造的三种方法 File f1 new File("//Users//wangminghao//Desktop//demo.txt"); System.out.println(f1);File f2 new File("//Users//wangminghao//Desktop","demo.txt"); System.out.println(f2);File f3 new File("…

SQL server 2016安装

1、关系数据库的基本概念。 行&#xff1a;每行成为一条“记录”或“元组”&#xff0c;用于描述一个对象的信息。 列&#xff1a;每列称为一个“字段”或“属性”&#xff0c;用于描述对象的一个属性。 2、主键与外键。 主键&#xff1a;键&#xff0c;即关键字。主键由一个或…

Android--Jetpack--Lifecycle详解

富贵本无根&#xff0c;尽从勤里得 一&#xff0c;定义 Lifecycle 是一个具备宿主生命周期感知能力的组件。它持有组件&#xff08;Activity/Fragment&#xff09;生命周期状态信息&#xff0c;并且允许其观察者监听宿主生命周期状态变化。 顾名思义&#xff0c;Lifecycle的主…

TA-Lib学习研究笔记(八)——Momentum Indicators 上

TA-Lib学习研究笔记&#xff08;八&#xff09;——Momentum Indicators 上 Momentum Indicators 动量指标&#xff0c;是最重要的股票分析指标&#xff0c;能够通过数据量化分析价格、成交量&#xff0c;预测股票走势和强度&#xff0c;大部分指标都在股票软件中提供。 1. A…

ChatGpt回答人工智能发展利大于弊的辩证论述

ChatGpt回答人工智能发展利大于弊的辩证论述 ​ 随着科技的迅猛发展&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域展现出强大的潜力&#xff0c;引发了广泛的关注和讨论。在这场变革中&#xff0c;人们对于人工智能的发展是否对人类有益的争论也愈发激烈。本文将…

离散化算法总结

离散化是将大范围的数字映射到小范围的区间内&#xff0c;适用于稀疏的区间。 两个问题需要考虑&#xff1a; 1. 原数组中可能有重复元素&#xff0c;需要去重。 2. 如何算出离散化后的值&#xff08;离散化后保序&#xff0c;使用二分&#xff09;。 题目链接&#xff1a; …

水利安全监测方案——基于RTU200的解决方案

引言&#xff1a; 水资源是人类赖以生存的重要基础&#xff0c;对于保障水利系统安全运行以及应对自然灾害起着关键作用。为了实现水利安全监测的目标&#xff0c;我们提出了基于RTU200的解决方案。本方案将结合RTU200的可靠性、灵活性和高效性&#xff0c;为您打造一个全面的…