TiDB 7.1 多租户在中泰证券中的应用

本文详细介绍了中泰证券在系统国产化改造项目中采用 TiDB 多租户技术的实施过程。文章分析了中泰证券数据库系统现状以及引入 TiDB 资源管控技术的必要性,探讨了 TiDB 多租户的关键特性,并阐述了在实际应用中的具体操作步骤。通过该技术的应用,中泰证券有效降低了运维成本,提升了开发效率。 文章强调了 TiDB 多租户在证券企业中的应用优势,特别突出了其在资源观测、复用、可配置性等方面的价值。

项目背景

中泰证券股份有限公司(原名齐鲁证券有限公司)成立于 2001 年 5 月,是国内排名前 20 的全国大型综合性券商,在全国 28 个省市自治区设有 45 家分公司、280 多家证券营业部,员工 9000 多人,控股中泰期货、中泰资本、中泰金融国际、中泰资管、中泰创投、齐鲁股权交易中心、万家基金,形成了证券、期货、基金、投资等各项业务齐头并进的发展格局。

受国际环境影响,在国家政策的大力支持下,系统国产化开始在全国范围内加速落地。中泰证券在系统国产化改造项目中,使用 TiDB 和国产化操作系统、芯片,提升自主可控能力。

中泰科技研发部目前使用两套 TiDB 集群,将多套业务系统进行集合。TiDB 集群版本号均为 V7.1。按照业务系统服务对象的不同,分别承载对外和对内客户业务。基于 TiDB 对大表的支持性更友好,无需分库分表,复杂 SQL 的性能提升明显,TiDB 的弹性扩缩容,简单易运维操作。这些,都毫无疑问地降低了运维成本、提升了开发效率。但是这两套集群都是多套业务系统共用,因此,非常需要资源管控技术,确保每一个业务系统都拥有独立的资源池。

TiDB 多租户介绍

TiDB 6.6 首次引入资源管控(Resource Control,简称:RC)特性,并在 TiDB 7.0 进行了优化和增强。该技术利用资源组 (Resource Group) 限制每个资源组所能使用的计算和 IO 资源,同时创造性的引入 burst (可超用)属性,当集群有空闲资源时,允许资源组超越限制,实现资源的充分利用。

这个特性满足了目前一些企业的需求,也可以顺带解决了部分用户的痛点:

  1. 业务系统间影响和干扰 :某个业务系统的非预期负载变化会影响其他业务系统的正常运行。
  2. 分析业务对交易的影响 :对资源需求较高的数据分析或批量作业会影响其他业务系统的响应时间。
  3. 运维操作对资源的消耗 :数据备份、统计信息收集等后台任务可能会影响服务质量。

具体应用和实施

以下文章内容中的数据均基于生产环境做过修改,不是真实数据,仅供参考。

3.1 资源评估

打开 Dashboard 页面,在左侧菜单列表中找到 Resource Manager,在 Estimate Capacity 中 根据标准测试类型进行资源评估。

3.2 应用绑定 RU

通过梳理数据库中的业务用户,确定哪些用户是属于哪些业务系统,方便后面将不同的资源组与不同的用户绑定。

执行以下 SQL 为业务 A、业务 B、以及管理员绑定 Resource Control 和 RU。业务 A 和业务 B 同属于 TP 系统,业务重要性较高,对 sql 查询速度和效率都有一定的要求,对慢查询容忍性较低。所以对业务 A 和业务 B 的资源分配优先级要高一些,并且允许资源超用(BURSTABLE),应对前端业务流量的突增。而管理员账户日常主要用来做数据库管理相关的工作,很少或者不涉及业务 SQL,所以资源分配优先级较低,可以先设置成允许资源超用。

初步绑定都设置 BURSTABLE 属性确保每个业务都有充足 RU 可以使用,避免资源不足情况而无法观察到某个业务真实 RU 消耗情况。

-- 创建A资源组
CREATE RESOURCE GROUP IF NOT EXISTS a_rg RU_PER_SEC=180000 PRIORITY=HIGH BURSTABLE;
-- 创建B资源组
CREATE RESOURCE GROUP IF NOT EXISTS b_rg RU_PER_SEC=90000 PRIORITY=HIGH BURSTABLE;
.....
-- 创建管理员查询资源组
CREATE RESOURCE GROUP IF NOT EXISTS admin_rg RU_PER_SEC=20000 BURSTABLE;
​
-- 为不同业务系统用户绑定资源组
-- 将A资源组绑定到A业务系统用户上
ALTER USER a_user RESOURCE GROUP a_rg;
-- 将B资源组绑定到B业务系统用户上
ALTER USER b_user RESOURCE GROUP b_rg;
.....
-- 将管理资源组绑定到系统管理用户上
ALTER USER admin_user RESOURCE GROUP admin_rg;

3.3 观察应用 RU 使用情况

完成绑定后 ,TiDB 可以实时统计到各个业务消耗的资源情况。生产运行一段时间后,需要观察业务实际消耗 RU, 完成后续调整。

依然是去 Dashboard 页面,在左侧菜单列表中找到 Resource Manager。这个页面较之前业务系统用户没有绑定 RU 之前,多了一个 Configuration 模块。可以在这里模块清晰的观察到每个资源组的详细信息。

继续在 Resource Manager 页面中找到 Metrics 模块,观察 RU 的使用情况(建议观察时间区域尽可能长,以得到更全面的 RU 消耗情况),如下图所示。

将这个曲线和上面 Configuration 模块的 RU 信息对照,查看是否需要进行 RU 调整。调整语句如下:

-- A业务系统最高消耗 17000 RU ,建议绑定 25000 RU ,预留一定 Buffer ,由于总体资源充足设置 BURSTABLE 属性确保业务有足够资源
alter resource group a_rg RU_PER_SEC=25000 PRIORITY=HIGH BURSTABLE;
​
-- B业务系统最高消耗 14000 RU ,建议绑定 20000 RU ,预留一定 Buffer ,由于总体资源充足设置 BURSTABLE 属性确保业务有足够资源
ALTER RESOURCE GROUP b_rg RU_PER_SEC = 20000  BURSTABLE;
​
-- 设置管理员查询资源组,不设置 BURSTABLE 属性,降低管理员执行 Slow Query 时对集群影响
alter resource group admin_rg RU_PER_SEC=10000;

RU 使用收益

由于目前 TiDB 服务器资源充足,并且各个业务系统的峰值谷值都具有同一性,每个业务系统的重要程度也差不多。所以 TiDB 这个多租户特性带来的价值主要体现在资源的可观测性和可配置性上。

在资源可观测性上 :有了 RU,结合 Dashboard,可以清楚的观察到每个业务系统使用了多少资源,TiDB 整个集群资源是否充足,是否需要添加资源。

在资源可配置性上 :TiDB 多租户最重要的能力是在资源繁忙时实现资源控制,后续继续迁移新业务导致资源不足且临时没有服务器添加到集群的场景下可以在线解除 BURSTABLE 属性,给业务设置合适的 RU 大小来实现资源控制。此能力可以在线调整,对业务几乎无感知。在资源不足的极端场景下,能够控制不同用户的资源消耗,保证各业务系统的资源隔离性,用户可以安心使用 TiDB 多租户能力。

结语

大部分企业会给 TiDB 集群预留充足资源,此时利用 BURSTABLE 属性实现资源观测和资源复用;小部分企业无法给 TiDB 集群预留充足资源,此时可以在线修改多租户配置并实现资源控制。

目前,在证券企业中,许多业务系统跑在不同的 MySQL 集群上面。随着 MySQL 5.7 生命周期结束以及 IT 基础设施国产化改造的推进,把存量的多套 MySQL 集群归集到一套 TiDB 集群成为一个理想的解决方案。通过 TiDB 的资源管控特性,多个业务能够共享一套集群,实现资源的有效利用。对比传统多租户方案,TiDB 多租户除了基础资源控制能力以外还提供了更强大的资源复用能力、资源可观测性、在线可配置性、在线限流等能力。可以更好降低整体硬件成本、减少多集群运维成本、观测资源池使用率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/277578.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

bat命令清理Window应用注册表(Unity开发Window应用)

bat命令清理Window应用注册表(Unity开发Window应用) 介绍出现的问题方案一方案二方案二解决方案1. 首先使用【Win】【R】组合快捷键,快速打开运行命令框,在打开后面键入命令:【Regedit】2. 完后后按回车键(…

华为发布的工业软件三大难题: 面向装配场景,10万+零件的超大规模几何约束系统的求解问题

华为发布的工业软件三大难题: 面向装配场景,10万零件的超大规模几何约束系统的求解问题。 一方面是算法改进, 另一方面是对云几何内核的需求:并行计算、分布式、缓存、集群等云计算技术对CAD系统的辅助提升。 云几何内核可以(/需要能)支撑…

HTML+CSS+JS网页设计期末课程大作业 web课程设计 web前端开发 网页规划与设计

HTMLCSSJS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计 💥 文章目录一、🚩 网站描述二、🎌 网站介绍三、🏴 网站类型A 个人博客主题B 人物明星主题C 旅游主题D 游戏主题E 动漫主题F 美食主题G 校园主题H 企…

GPT编程(1)八分类图像数据集转换为二分类

一个核心问题就是要将这八类数据图片全部重命名,尝试了一步到位 有一个图像数据集,有八个类别amusement,anger,awe,contentment,disgust, excitement, fear,sadness的图片,每张图片被命名为“类别数字”。采用遍历的方式,按顺序阅…

每天坐在电脑前10小时的投资者的现货黄金投资秘密

很多人在现货黄金市场中苦作舟,希望通过交易、实践来找出市场中的奥秘。笔者最近看了一个每天坐在电脑面前十个小时以上做分析和投资的投资者的经验介绍,他道出了一些投资的秘密,笔者认为,这是适合现货黄金投资者借鉴和学习的&…

7.7复原IP地址(LC93-M)

算法: 根据题意 有效的 IP 地址 : (1)由四个整数构成 (2)每个整数位于 0 到 255 之间 (3)每个整数不能含有前导 0,如011、021等,但是可以有单独的一个“…

【笔记】Spring的事务是如何回滚的/Spring的事务管理是如何实现的

Spring的事务是如何回滚的/Spring的事务管理是如何实现的 数据库(Spring事务) 1、建立连接、开启事务(准备工作) 2、进行sql操作(业务逻辑) 3、执行成功,则commit; 执行失败&#x…

MySQL 执行过程

MySQL 的执行流程也确实是一个复杂的过程,它涉及多个组件的协同工作,故而在面试或者工作的过程中很容易陷入迷惑和误区。 MySQL 执行过程 本篇将以 MySQL 常见的 InnoDB 存储引擎为例,为大家详细介绍 SQL 语句的执行流程。从连接器开始&…

直播的营销多样性

直播的营销多样性主要体现在以下几个方面: 1.互动性高:直播能够实时互动,观众可以提问、评论、点赞,甚至直接在直播中购买商品,这种互动性使得直播成为一种非常有效的营销手段。 2.内容生动:直播能够以视频的形式展示产品或服务,相比传统的…

概率论相关题型

文章目录 概率论的基本概念放杯子问题条件概率与重要公式的结合独立的运用 随机变量以及分布离散随机变量的分布函数特点连续随机变量的分布函数在某一点的值为0正态分布标准化随机变量函数的分布 多维随机变量以及分布条件概率max 与 min 函数的相关计算二维随机变量二维随机变…

UWB高精度人员定位系统源码,全方位护航安全生产

定位管理系统使用UWB定位技术,通过在厂区安装定位基站,为人员或设备佩戴定位标签的形式,实现人员精准实时定位。可以实现人员、车辆物资实时定位、工作考勤、电子围栏、历史轨迹回放、巡检巡查、物资盘点、路径规划、三维显示等,以…

JAVA B/S架构智慧工地源码,PC后台管理端、APP移动端

智慧工地系统充分利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术,以PC端,移动端,设备端三位一体的管控方式为企业现场工程管理提供了先进的技术手段。让劳务、设备、物料、安全、环境、能源、资料、计划、质量、视频监控等…

【小白专用】C# 压缩文件 ICSharpCode.SharpZipLib.dll效果:

插件描述: ICSharpCode.SharpZipLib.dll 是一个完全由c#编写的Zip, GZip、Tar 、 BZip2 类库,可以方便地支持这几种格式的压缩解压缩, SharpZipLib 的许可是经过修改的GPL,底线是允许用在不开源商业软件中,意思就是免费使用。具体可访问ICSha…

【AI】文本转语音 变声 音色克隆 数字人音视频口型同步AI应用

文本转语音 项目地址:https://github.com/coqui-ai/TTS 环境安装: 下载项目;安装Python,安装项目依赖: pip install TTS 1. 下载安装AI模型: https://github.com/facebookresearch/fairseq/tree/main…

大数据框架数仓Doris学习网站,让你轻松掌握数据仓库技能。

介绍:Doris是一款基于大规模并行处理技术的分布式SQL数据库,由百度开源,主要用于实时数据仓库和多维分析。它是一款大数据分析引擎,适用于实时分析场景,支持多种数据接入和输出,提供丰富的核心特性和性能优…

面试算法77:链表排序

题目 输入一个链表的头节点,请将该链表排序。 分析 归并排序的主要思想是将链表分成两个子链表,在对两个子链表排序后再将它们合并成一个排序的链表。 这里可以用快慢双指针的思路将链表分成两半。如果慢指针一次走一步,快指针一次走两步…

【Midjourney】Midjourney根据prompt提示词生成人物图片

目录 🍇🍇Midjourney是什么? 🍉🍉Midjourney怎么用? 🔔🔔Midjourney提示词格式 Midjourney生成任务示例 例1——航空客舱与乘客 prompt prompt翻译 生成效果 大图展示 细节大…

见证创新实力!安全狗云甲荣获“ISC 数字安全创新能力百强”

12月27日,数字安全技术创新论坛暨ISC 2023数字安全创新能力百强颁奖典礼在北京顺利举办。 作为国内云原生安全领导厂商,安全狗也受邀出席此次活动。 厦门服云信息科技有限公司(品牌名:安全狗)创办于2013年,…

基于YOLOv8的遥感SAR舰船小目标识别

💡💡💡本文摘要:基于YOLOv8的遥感SAR舰船小目标,阐述了整个数据制作和训练可视化过程 1.YOLOv8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的…

【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean)

文章目录 🍔Bean的获取🎄注入IOC容器对象⭐代码实现🛸根据bean的名称获取🛸根据bean的类型获取🛸根据bean的名称和类型获取 🎄Bean的作用域⭐代码实现🎈注意 🎄第三方Bean⭐代码实现…