← 返回官网架构演进之路 · ARCHITECTURE EVOLUTION · 02/10
01 · 单机架构03 · 应用集群与负载均衡
阶段 02 · 分离

应用与数据分离架构白皮书

第一刀切在哪:把数据库请出应用服务器,换来数据安全与各自独立的伸缩。

02 / 10阅读 ≈ 11 分钟适用:日活 5,000 - 30,000 · 团队 3-6 人骏瑞轩集团 · 云与数字科技

§ 00概述

架构演进的第二刀几乎总是切在同一个位置:把数据库从应用服务器上请出去。应用与数据分离之后,两者第一次拥有了独立的生命周期——应用可以随时重启、重建、扩容,而数据安安静静地待在专业的存储设施里。

本章延续系列的数据集风格:组件选型、成本测算、指标基线、演进信号、检查清单、翻车点、FAQ 共 7 类。所有数据均以「从单机平滑迁移」为前提,给出可执行的路径与真实量级的成本。

§ 01演进定位

单机架构的三大边界中,数据安全是先于性能爆发的那个。应用出故障损失的是可用性,数据出故障损失的是信任——前者可以修复,后者往往不能。分离的第一动机因此是数据安全,其次才是性能。

分离后的收益立竿见影:数据库由云数据库托管,主备热备、自动故障切换、按时间点回档(PITR)全部变成托管能力;应用侧资源占用骤降,同一台服务器可承载的请求量翻倍;两侧分别按需扩容,互不牵制。

这次分离也是组织意义上的分水岭:团队第一次需要连接串管理、账号权限、内网互通这些「数据工程」动作。把它们做规范,后面所有章节的演进都会更顺。

§ 02技术架构

标准形态:应用服务器(CVM)通过内网连接云数据库(CDB),文件与备份落在对象存储(COS)。应用与数据库之间的流量全部走内网——更低延迟、免公网流量费、且数据库不暴露公网是安全底线。

云数据库选高可用版(一主一备热备),故障切换通常在 30 秒内完成且对应用透明。开启 binlog 与自动备份:每日全量 + binlog 增量,支持精确到秒的回档。

迁移路径的标准做法是「双写过渡」:新库搭建后,先历史数据迁移 + 增量同步,再灰度切换读流量,最后切换写流量并观察一个完整业务周期。全程可回滚,业务基本无感。

§ 03实施路径

第一阶段(约 1 周):选购云数据库高可用版、VPC 内网打通、账号与权限最小化(应用账号禁 DDL)、连接串与环境变量收敛到配置中心或加密配置文件。

第二阶段(1-2 周)数据迁移:全量导入 + 增量同步(DTS 或 binlog 订阅),数据校验(行数与抽样内容比对),只读灰度——先切 10% 读流量观察一周。

第三阶段(约 1 周)切换与回退预案:写流量切换安排在业务低峰,切换前冻结发布;准备一键回切方案;切换后保留旧库只读 2 周作为保险。总周期 3-4 周。

§ 04客户价值与适用判断

该切:数据库内存持续吃紧、数据合规要求独立管控、或团队已被「重启应用必须连着数据库一起重启」折磨过任何一次。

成本视角:分离会带来月成本约 2-3 倍的上涨(从约 ¥219 到约 ¥700),换来的是 RPO 从 24 小时进入分钟级、数据库可用性从「尽力而为」进入 99.95% 托管 SLA。对有真实用户的业务,这是全系列性价比最高的一次升级。

不着急切:纯静态站点、内部工具、或数据可再生(如纯爬取数据可重建)的场景,单机 + 快照已足够,不必为架构美感付费。

§ D01组件与选型清单

DATA应用与数据分离 · 标准组件栈分离后标准栈
层级组件选型建议职责与要点
应用云服务器 CVM通用型 4C8G纯应用进程,资源余量投向请求处理
数据库云数据库 CDB 高可用版2C4G · 一主一备主备热备自动切换,应用侧仅暴露内网地址
备份自动备份 + binlog每日全量 + 增量支持按时间点回档(PITR),保留 7-30 天
对象存储COS标准 100GB 起文件与静态资源,应用无状态化的前提
网络VPC 内网互通私有网络对等数据库零公网暴露,连接走内网域名
安全数据库账号最小化应用账号禁 DDL读写账号分离,高危操作走运维通道
迁移DTS 数据同步全量 + 增量双写过渡期的数据管道,附校验报告

高可用版与基础版价差约一倍,但对「数据即业务」的场景,主备热备是默认项而非可选项。

§ D02成本测算数据集

DATA成本测算示例(分离后标准栈 · 月度)月度 · CNY
项目规格月成本说明
应用服务器通用型 4C8G · 包年≈ ¥260纯应用,单机时代同价位承载翻倍
云数据库高可用版 2C4G≈ ¥330一主一备热备,含自动备份
对象存储标准 100GB + 流量≈ ¥20文件与备份
公网带宽5Mbps · 按流量≈ ¥40数据库已走内网,公网仅服务应用
内网流量同 VPC≈ ¥10应用-数据库内网流量费
监控告警云监控进阶≈ ¥10数据库关键指标告警
月均合计 ≈ ¥670 · 较单机 +2.1 倍

估算口径同第 01 章。数据库费用弹性最大:基础版可再省约一半,但放弃热备——我们不推荐对真实业务这样做。

§ D03关键指标基准

DATA可用性与体验基线SLO 参考
指标单机基线本阶段目标行业良好
数据库可用性随整机99.95%(托管切换)99.99%+
故障切换时长分钟-小时级< 30 秒主备切换< 10 秒
数据丢失 RPO24 小时< 1 分钟(半同步)秒级
误操作恢复依赖备份覆盖按时间点回档 PITR秒级 PITR
应用可承载 QPS≈ 100-150≈ 300(资源独占)水平扩展

§ D04演进触发信号

DATA什么时候必须走向下一阶段任一命中即评估
触发信号判定阈值演进方向
发布需停机任何工作时段发布都会丢请求应用集群 + 负载均衡(03)
读请求压垮数据库读 QPS > 500 且 CPU > 60%读缓存(04)+ 只读实例(05)
会话粘性阻碍扩容应用无法多实例部署会话外置 Redis(03)
静态流量增长文件下载/图片流量上升明显对象存储直传 + CDN(06)
数据量逼近单库上限单表 > 2,000 万行读写分离与分库分表(05)

§ D05上线检查清单

内网直连数据库仅内网可达,公网入口关闭,安全组精确到应用内网 IP
账号最小化应用账号只授必要库的 DML 权限,DDL 走运维审批通道
备份验证完成一次 PITR 回档演练,确认能恢复到指定秒级时间点
连接串治理不出现在代码与镜像中,走环境变量或配置中心,轮换有流程
迁移校验报告行数、关键表抽样、业务对账三方一致后再切流量
回退预案写流量可一键回切旧库,旧库保留只读 2 周后再下线

§ D06高频翻车点

公网直连数据库为省事暴露公网端口,等于把核心资产挂上公网挨扫
迁移不做校验只看「没报错」,切流后才发现字符集或时区差异导致数据异常
单可用区部署应用与数据库同可用区,机房级故障一起失效,重要业务应跨 AZ
连接数失控应用未用连接池,短连接打满云数据库 max_connections
超大事务迁移迁移窗口内有大事务,增量同步长延迟导致切换后数据回退

§ D07常见问答

DATA应用与数据分离 · 问答数据集4 组
问题答案
迁移过程中业务会中断吗?标准双写迁移全程无需停机:全量 + 增量同步期间业务照常跑旧库,读灰度、写切换都在秒级完成。只有最后的写切换有约 10 秒的写冻结窗口,安排在低峰即可。
云数据库会不会比自建慢?同规格下托管数据库通常更快:NVMe 存储与内核参数已调优,且主备架构读写分离就绪。自建的「快」往往是没有备份与高可用成本的假象。
费用翻倍值不值?分离换来的三样东西——分钟级 RPO、托管高可用、两侧独立扩容——任一单买都不止这个价。有真实付费用户的业务,这是全系列性价比最高的升级。
分离之后下一步往哪走?按演进信号定:读压力先看 04 章多级缓存;可用性要求提升走 03 章应用集群;两者通常先后到来,顺序不影响彼此。

§ D8角色分工数据集

DATA角色分工数据集本阶段人员配置
角色核心职责投入度备注
后端开发连接改造 · 双写迁移 · 灰度切流80%迁移期主责
DBA(可兼)云数据库运维 · 校验 · 回档演练40%迁移窗口全职
运维VPC 内网 · 安全组 · 监控接入30%网络先行
业务负责人低峰窗口审批 · 切流决策10%切换夜在岗

§ D9风险登记册

DATA风险登记册概率 × 影响
风险概率影响缓解措施
迁移后数据不一致中致命行数+抽样双校验 · 只读灰度 ≥ 3 天 · 一键回切
应用连接数打满数据库中严重连接池改造 · 按 max_connections 70% 规划
数据库被公网暴露低致命仅内网可达 · 安全组审计入巡检
大事务拖长同步延迟中中迁移窗口冻结 DDL 与批量作业

§ D10监控告警清单

DATA监控告警清单阈值即责任
监控对象指标告警阈值响应动作
主从复制延迟秒数> 1 秒短信 · 排查大事务与规格
数据库连接连接数 / 上限> 70%短信 · 连接池复核
慢查询每分钟新增> 10 条工单 · SQL 治理
备份任务执行结果失败电话 · 当日重跑
数据盘容量使用率> 80%工单 · 扩容评估

§ D11工具链选型

DATA工具链选型迁移与运维
环节推荐备选选择理由
数据迁移DTS 全量+增量mysqldump + binlog 重放托管同步 · 自带断点续传
数据校验行数+抽样脚本pt-table-checksum两套独立口径交叉确认
连接管理连接池(HikariCP 等)ORM 内置池上限显式声明并压测
配置管理.env 加密 + 权限配置中心02 章规模暂不需要中心化

§ D12实施时间线

DATA实施时间线周为单位
周次里程碑责任角色出口物
W1云数据库就绪运维 + DBA内网互通 · 账号最小化 · 备份开启
W2全量+增量同步DBA + 后端同步延迟 < 1s · 首轮校验通过
W3只读灰度后端 + 业务10%→50% 读切流无异常
W4写切换与观察全员切换完成 · 旧库只读保留 2 周

§ D13SLA 与容灾基线

DATASLA 与容灾基线对内承诺
指标基线承诺度量方式未达标处置
数据库可用性99.95%云控制台 SLA 报表升级为跨 AZ 部署
主备切换时长< 30 秒故障演练实测演练频率提升到月度
RPO< 1 分钟PITR 演练验证检查半同步复制状态
备份恢复演练每季度 1 次演练记录未执行视为 SLA 违约

§ D14应急预案

DATA应急预案一页纸预案
故障场景典型现象处置步骤升级路径
主库故障写入报错 · 自动切换中① 确认切换完成 ② 观察复制拓扑 ③ 验证写入恢复10 分钟未恢复 → 云工单 P1
复制延迟持续放大从库数据落后① 排查大事务 ② 必要时限流写 ③ 追平后恢复延迟 > 10 分钟 → 降级读主库
误删除数据业务反馈数据缺失① 冻结相关写入 ② PITR 回档到误操作前 ③ 数据比对后恢复涉及交易数据 → 立即升级 DBA + 业务
连接数耗尽大量连接超时① 定位连接来源 ② 杀超额会话 ③ 修正连接池上限反复出现 → 复盘容量规划

§ D15首年成本明细

DATA首年成本明细CNY
项目月成本年成本备注
应用服务器 4C8G≈ ¥260≈ ¥3,120包年
云数据库高可用 2C4G≈ ¥330≈ ¥3,960主备热备含备份
对象存储 + 内网流量≈ ¥30≈ ¥360文件与备份
公网带宽≈ ¥40≈ ¥480仅应用侧
监控与迁移临时费用≈ ¥20≈ ¥240DTS 按迁移窗口计

首年合计 ≈ ¥8,160。数据库费用占比 48%——分离之后账单重心从计算转向数据,属健康结构。

§ D16团队能力要求

DATA团队能力要求按需补齐
能力项要求级别如何补齐
MySQL 运维基础必须云数据库认证课程 + 回档演练
数据迁移与校验必须跟随一次完整双写迁移实操
连接池调优建议压测报告复盘
故障演练方法建议每季度预案演练轮值

§ D17关键决策速查(ADR)

DATA关键决策速查(ADR)本阶段 4 个决策
决策备选方案结论理由
数据库选型自建 MySQL vs 云数据库托管高可用:RPO 分钟级 + PITR 买不来自建
迁移方式停机迁移 vs 双写双写:迁移不停业,成本可控
文件存储本地盘 vs COSCOS:应用无状态化的前提
账号体系root 通用账号 vs 最小化最小化:DDL 走审批通道

§ D18高频面试题

DATA高频面试题本阶段 4 题
问题考察点优秀回答特征
双写迁移怎么保证一致性?迁移工程双校验+灰度+回切三件套完整
连接池怎么设?容量意识按 max_connections 70% 与压测结果
误删数据如何救?应急能力PITR 秒级回档流程清晰
为什么不直接读写分离?演进判断按触发信号决策,不超前消费

§ D19命令与操作速查

DATA命令与操作速查数据专项
场景命令/操作说明
主从延迟SHOW SLAVE STATUSSeconds_Behind_Master
连接排查SHOW PROCESSLIST按来源聚合定位
行数校验count 对比脚本迁移窗口每日跑
PITR 回档控制台 · 按时间点先在临时实例验证

§ D20采购与商务要点

DATA采购与商务要点本阶段采购项
采购项询价要点商务注意
云数据库高可用版主备切换 SLA 与 PITR 保留期跨 AZ 是否加价
DTS 迁移任务按任务还是按流量计费迁移窗口结束后及时释放
跨 AZ 部署同地域跨 AZ 流量费内网互通费用先确认

§ D21阶段 KPI 卡

DATA阶段 KPI 卡验收口径
KPI口径目标
数据库可用性月度 SLA99.95%
迁移一致性校验差异数0
切换停机写冻结窗口< 10 秒
月成本账单合计≤ ¥800

§ D22交接清单

DATA交接清单换人不换知识
交接项载体验收
迁移双校验脚本Git 仓库新环境可复跑
数据库账号台账密码管理器权限与人对得上
回档操作手册Wiki30 分钟内完成一次回档
切换预案Wiki含回切步骤与联系人

§ D23演进检查点评审

DATA演进检查点评审走向 03 章前
检查项达标标准结果
会话可外置登录态已由 Redis 承载通过/不通过
文件已上对象存储本地无持久化文件通过/不通过
数据库高可用验证主备切换演练 < 30 秒通过/不通过
发布可脚本化一键部署成功率 100%通过/不通过

§ →继续演进