惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
博客园 - 聂微东
罗磊的独立博客
W
WeLiveSecurity
博客园_首页
Scott Helme
Scott Helme
V
Visual Studio Blog
T
The Exploit Database - CXSecurity.com
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
Latest news
Latest news
L
Lohrmann on Cybersecurity
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
About on SuperTechFans
F
Full Disclosure
Y
Y Combinator Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 司徒正美
博客园 - Franky
C
CXSECURITY Database RSS Feed - CXSecurity.com
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
阮一峰的网络日志
阮一峰的网络日志
S
Schneier on Security
雷峰网
雷峰网
博客园 - 【当耐特】
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Engineering at Meta
Engineering at Meta
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
T
Tor Project blog
V
V2EX
爱范儿
爱范儿
C
Check Point Blog
T
Threatpost
Project Zero
Project Zero
量子位
V
Vulnerabilities – Threatpost
Know Your Adversary
Know Your Adversary
I
Intezer
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
GbyAI
GbyAI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

美团技术团队

美团 · 技术团队 美团 · 技术团队 美团 · 技术团队 美团 · 技术团队 美团 · 技术团队 美团 · 技术团队 美团发布基于 N-gram 全新模型:嵌入扩展新范式,实现轻量化 MoE 高效进化 2025美团技术年货,「马」上到来 多维创新打造强泛化智能体模型,LongCat-Flash-Thinking-2601技术报告发布 美团 EvoCUA 刷新开源 SOTA,会用电脑还会持续进化的智能体! 美团 LongCat-Flash-Thinking-2601 发布,工具调用能力登顶开源 SOTA! KuiTest:基于大模型通识的 UI 交互遍历测试 AAAI 2026 | 美团技术团队学术论文精选 2025 | 美团技术团队热门技术文章汇总 美团 LongCat-Video-Avatar 正式发布,实现开源 SOTA 级拟真表现 大模型剪枝新范式:先浓缩,再剪枝——DenoiseRotator技术解读 LongCat 上线 AI 生图!精准高效,AI 创作不设限 美团发布 LongCat-Image 图像生成模型,编辑能力登顶开源 SOTA AI Coding与单元测试的协同进化:从验证到驱动 R-HORIZON:探索长程推理边界,复旦NLP&美团LongCat联合提出LRMs能力评测新框架 美团 LongCat 发布 AMO-Bench:突破 AIME 评测饱和困境,重新定义 LLM 数学上限 美团 LongCat Interaction 团队发布大模型交互系统技术报告 WOWService 美团 LongCat 团队发布全模态一站式评测基准 UNO-Bench 美团开源LongCat-Audio-Codec,高效语音编解码器助力实时交互落地 NeurIPS 2025 | 美团技术团队论文精选 LongCat-Flash-Omni正式发布并开源:开启全模态实时交互时代 美团 LongCat 团队发布 VitaBench:基于复杂生活场景的交互式 Agent 评测基准 LongCat-Video 视频生成模型正式发布,探索世界模型的第一步 ICCV 2025 | 美团论文精选及多模态推理竞赛冠军方法分享 从0到1建设美团数据库容量评估系统 可验证过程奖励在提升大模型推理效率中的探索与实践 LongCat-Flash-Thinking 正式发布,更强、更专业,保持极速! 开源 | InfiniteTalk:无限长虚拟人视频生成的新范式 美团正式发布并开源 LongCat-Flash-Chat,动态计算开启高效 AI 时代 美团 M17 团队开源 Meeseeks 评测集:揭秘大模型的“听话”能力 可信实验白皮书系列08:开放式分析引擎 | 附PDF合集 美团智能头盔研发实践系列02:软件功能篇 美团智能头盔研发实践系列01:硬件设计篇 ACL 2025 | 美团技术团队论文精选 美团开源OIBench与CoreCodeBench:揭示大模型编程能力的真实水平 可信实验白皮书系列07:高阶实验工具 开源 | MeiGen-MultiTalk:基于单张照片实现多人互动演绎 可信实验白皮书系列06:观察性研究 JDK高版本特性总结与ZGC实践 可信实验白皮书系列05:准实验 可信实验白皮书系列04:随机轮转实验 可信实验白皮书系列03:随机对照实验 可信实验白皮书系列02:AB实验基础 可信实验白皮书系列01:从0到1的方法论与实践指南 MTGR:美团外卖生成式推荐Scaling Law落地实践 OR算法+ML模型混合推理框架架构演进 ICLR&CVPR 2025美团技术团队论文精选 行为正则化与顺序策略优化结合的离线多智能体学习算法 预测技术在美团弹性伸缩场景的探索与应用 美团技术年货 | 600+页电子书,算法、工程、测试、数据、安全系列大合集 鸿蒙应用签名实操及机制探究 2024 | 美团技术团队热门技术文章汇总 AutoConsis:UI内容一致性智能检测 CIKM 2024 | 美团技术团队精选论文解读 大前端:如何突破动态化容器的天花板? KDD 2024 OAG-Challenge Cup赛道三项冠军技术方案解读 新一代实验分析引擎:驱动履约平台的数据决策 大众点评技术部包揽KDD 2024 OAG-Challenge Cup赛道全部3项冠军 ACL 2024 | 美团技术团队精选论文解读 KDD 2024 | 美团技术团队精选论文解读 基本功 | 一文讲清多线程和多线程同步 小程序可测性能力建设与实践 SIGIR 2024 | 美团技术团队精选论文解读 Spark向量化计算在美团生产环境的实践 CVPR 2024 | 美团技术团队精选论文解读 基于多模态信息抽取的菜品知识图谱构建 DDD在大众点评交易系统演进中的应用 美团外卖基于GPU的向量检索系统实践 美团大规模KV存储挑战与架构实践 基于接口数据变异的App健壮性测试实践 美团技术年货 | 600+页电子书,前端、后端、算法、测试、运维系列大合集 美团RASP大规模研发部署实践总结 2023 | 美团技术团队热门技术文章汇总 美团到店终端从标准化到数字化的演进之路 AIOps在美团的探索与实践——事件管理篇 美团技术博客十周年,感谢一路相伴 基于UI交互意图理解的异常检测方法 如何利用「深度上下文兴趣网络」提升点击率? 基于模式挖掘的可靠性治理探索 代码变更风险可视化系统建设与实践 美团多场景建模的探索与实践 MJDK 如何实现压缩速率的 5 倍提升? 如何提供一个可信的AB测试解决方案 KDD 2023 | 美团技术团队精选论文解读 美团前端研发框架Rome实践和演进趋势 斩获CVPR 2023竞赛2项冠军|美团街景理解中视觉分割技术的探索与应用 MySQL自治平台建设的内核原理及实践(下) CVPR 2023 | 美团技术团队精选论文解读 超大规模数据库集群保稳系列之三:美团数据库容灾体系建设实践 超大规模数据库集群保稳系列之二:数据库攻防演练建设实践 Robust 2.0:支持Android R8的升级版热修复框架 超大规模数据库集群保稳系列之一:高可用系统 一次「找回」TraceId的问题分析与过程思考 基于AI+数据驱动的慢查询索引推荐 SOTA!目标检测开源框架YOLOv6 3.0版本来啦
RDS平台介绍
柯任 · 2016-09-03 · via 美团技术团队

本文整理自美团点评技术沙龙第10期:数据库技术架构与实践。

美团点评技术沙龙由美团点评技术团队主办,每期沙龙邀请美团点评及其它互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域。

本次沙龙主要围绕数据库相关的主题,内容包括美团数据库自动化运维系统构建、点评侧MySQL自动化服务平台RDS、美团数据库中间件、和小米高级DBA带来的Redis Cluster的大规模运维实践。

今天我就给大家讲一下我们这边做的数据库运维的自动化平台,他是怎么样子的。首先我会给大家简单介绍一下我们做平台的背景,以及平台的一些技术架构,以及针对我们DBA和开发的需求的全套解决方案。

首先是背景,我们为什么要做RDS,在做RDS之前其实我们也有一套自己的自动化系统,可是我们有了这套自动化系统我们发现有了之后我们DBA还是很忙,每天忙于工单处理,大表DDL,集群搭建,扩容,数据迁移等等。这些东西不能说没有价值,但是对于DBA来说,每一次的重复操作,都会让这个价值指数级下降,并且不能带来成长。所以我们对这些需求做了一个简单的分析。

首先第一个,工单审核,大表DDL,数据权限,都是与数据相关的需求,我们看另一部分,集群扩容,数据迁移,故障转移是与数据库相关的。所以我们这边有一个理念我们一定要让数据相关的全部让他们自助化,让开发去做,而不是让我们DBA去做,而跟DBA相关的全部让他自动化。这就是我们现在的理念。

Alttext

接下来我们面临一个问题就是改造原系统还是重建一个。老系统很符合一个传统运维系统的“特点”:运维开发自己搭服务器,自己上线,自己维护。这会带来一系列问题,比如自己维护的成本很高,还有就是因为这一套与线上业务应用完全不同,所以无法享用业务成熟的组件以及各种自动化服务。所以我们改变了以前的思路,我们以前自己搭的系统全部废掉,全部用线上的系统,我们从整个系统维护搭建以及我们使用的组件全是线上一模一样的一套,甚至包括我们数据库这些东西,全部托管到我们DBA来,还有对服务器这块交给业务运维他们去管,他们更专业,管得肯定也更好。还有就是原来系统面向DBA的,就是我让你DBA工作稍微不再繁琐,自动化工具,你去点一下做完了,现在我们的理念是面向开发,什么叫面向开发呢?就是我们希望开发与我们DBA的整个交互,靠这个系统来交互,你不要老找我说这说那,你就跟我系统打交道好了,有什么错我们系统会告诉你,告诉你怎么去做,让DBA完全从我们整个平台的日常需求里面脱离出来,这就是我们整个的设计理念。 接下来说说我们的基础架构:

Alttext

因为我们说了,我们要跟线上业务一样,所以我们前面有了一层slb,做均衡负载的。然后是RDS主体部分,主要由RDS主程序和、动态配置管理中心Lion,数据迁移工具Puma和数据访问层中间件zebra组成,其中zebra中间件是一个基于jdbc的数据库动态链接池。

数据库则是MHA+MySQL的架构。最后有一个轻量级的jobCenter,主要用于执行系统级的命令。

最后是一个Job Center,因为我们DBA需要跟资源打交道,会去做一些资源维护,你需要操作系统级别的权限,我们要实现他,其实我们当时有三种方案,第一个我们在自己的管理服务器之上搭一个服务提供API,你来调度,但这就回到我们以前的老路上,你需要去维护这服务,成本很高。第二个就是我们在我们自己的机器上,去装这些脚本,或者给他一些操作系统级命令他自己去执行,这里面又有一个问题,这样装了之后,我们自己的服务器和线上应用服务器就不一样,当他不一样之后你就无法让业务运维进行统一化管理了,所以我们也抛弃了。我们就选了第三种方案,把我们的命令写在这个MySQL里面,我们专门的管理机去取这个命令去执行,而且这层特别薄,薄到几乎无需维护,这样就跟线上业务一模一样,而且还可以进行水平扩展,所以整个系统下来全部可以水平扩展。

然后我们还有一个无状态任务流中心:

Alttext

这个主要分为process和task。每个process由多个task组成,每个task可以分成多个并发的子task,每个子task我们都会尽量做成幂等。

整个流程由start开始,并由流程中心的doNext控制,最后的每个任务进入到一个任务队列中,最后jobcenter会取出任务,并fork出新进程具体执行相关任务,并进行回调。为了支持jobcenter的分布式扩展,我们用mysql的任务队列做了一个很轻量级的互斥锁来达到多任务中心的互斥功能。主要是我们给每个task一个初始状态UNDO,然后task center拿到任务后会回去update这个任务,并将UNDO作为条件,然后得到MySQL的匹配行数返回值,如果为1则执行,否则放弃,给其它task center执行。

RDS系统实现了DBA的一键集群搭建,扩容/缩容,备份还原,流量控制,动态迁库/拆库,以及单表拆分等功能。我们主要来看看动态数据迁移。

Alttext

动态迁库/拆库在可靠性和自动化程度相较之前都有了一个很大的提升。而动态迁库/拆库主要分为四个步骤:1.种子数据的迁移;2.增量数据迁移;3.账号权限迁移;4.数据源切换。而增量数据迁移和数据源切换是关键点。其中增量数据迁移我们支持中间机(搭建MySQL中间机,通过配置过滤规则进行数据同步)和puma两种方式,因为各有优缺点(前者快但繁琐且只能有一个源,而后者虽然稍慢,但是支持多源同目标)。

Alttext

在切换数据源时,我们采用:校验权限→锁表→校验数据一致性→切换动态数据源→kill被阻塞query→renametable…→resetslave这样一个流程来保证整个流程的安全可靠。其中对于锁表,我们必须在一个事务中进行lock tables,数据一致性校验我们采用官方的checksum算法来check每张表的最后1000条数据(1000是我们的一个经验值),然后针对迁移过程中被阻塞的sql,我们采用直接kill的方式来让业务报错重试,以避免数据的不一致。

而对于单表的自动分库分表,我们采用:配置分表规则→根据规则dump数据→配置增量同步任务→业务开启双写→关闭老表写入这样几步来实现单表的动态拆分。

Alttext

针对开发人员,我们提供了一个SqlEditor的模块来支持。这个模块集查询,修改、权限配置和数据模糊于一身。它相对于以前的临时权限方案主要有这样几个优点:

Alttext

1.统一的系统级访问账号

2.从向数据库申请权限变成向系统申请权限

3.从根源上规范了用户的访问行为(默认访问运营库,主库查询严格控制,返回结果1w行,60秒kill)

4.审计、安全控制更加方便(读写权限分离,column级别的密级设置以及数据模糊)

作者简介

柯任,美团点评开发DBA。主要负责点评侧自动化平台的搭建以及Mongodb的维护工作。