虢国飞-饿了么异地双活数据库实战

森晓兰

2018/05/13 发布于 技术 分类

我今天分享是饿了么在数据库和多活数据库这块的实战经历,供大家参考。 主要分享以下五点: 1、多活当中的难点 2、多活的架构 3、数据库改造 4、DBA 挑战 5、收益与展望

文字内容
1. GOPS 全球运维大会 2018 2018.4.13-4.14 中国·广东·深圳·南山区 圣淘沙大酒店(翡翠店) GOPS 全球运维大会2018·深圳站
2. 饿了么异地双活数据库实战 虢国飞 DBA负责人 GOPS 全球运维大会2018·深圳站
3. 目录 1 多活难点 2 多活难架点构 3 数据库改造 4 DBA挑战 5 收益与展望 GOPS 全球运维大会2018·深圳站
4. 多活难点-异地 GOPS 全球运维大会2018·深圳站
5. 多活难点-数据 • 错乱 • 冲突 • 环路 • 一致性 GOPS 全球运维大会2018·深圳站
6. 多活难点 • 如何解决跨机房延时对业务影响(延时、抖动、跨机房访问) • 如何分区访问流量,保障用户访问落到正确的机房 • 如何防止数据错乱,保障数据(最终)一致性 GOPS 全球运维大会2018·深圳站
7. 多活难点 • 业务特点:业务内聚、划分围栏(POI)、可用性优先 • 路由控制:SKey、APIRouter、SOA(内部调用) • 脏写预防:冲突改造、SOA-Route、DAL-Reject • 数据一致:DRC冲突、自增控制、数据校验(DCP) GOPS 全球运维大会2018·深圳站
8. 目录 1 多活难点 2 多活架构 3 数据库改造 4 DBA挑战 5 收益与展望 GOPS 全球运维大会2018·深圳站
9. 多活架构-Overview GOPS 全球运维大会2018·深圳站
10. 多活架构-DRC GOPS 全球运维大会2018·深圳站
11. 多活架构-DB GOPS 全球运维大会2018·深圳站
12. 多活架构-DB GOPS 全球运维大会2018·深圳站
13. 目录 1 多活难点 2 多活架构 3 数据库改造 4 DBA挑战 5 收益与展望 GOPS 全球运维大会2018·深圳站
14. 数据库改造-项目 项目 全量数据导入 表增加DRC字段 PK int改bigint FK改bigint 业务分类迁移 自增调整 原生改DRC 账号网段调整 全量参数一致性 HA全量部署改造 改造原因 数据量 周期 测试环境、生产环境数据全量同步 几百TB 两周 表增加毫秒级别的时间戳,方便判断数据有效性 十几万表 自增调整防止溢出 Pk调整防止溢出 不同类型业务要求放入不同集群 十几万表 几万表 50+ DB 五周 防止自增冲突,每个zone起始值错开 原生复制改成DRC复制,支持多写 几百套 几百套 原来账号限制在一个机房,现在需要支持多个机房 数千账号 三周 各个集群参数必须一致 按集群类型调整HA配置 几百套 几百套 GOPS 全球运维大会2018·深圳站
15. 数据库改造-前后比较 实例 项目 集群 Proxy HA 数据量 DDL DML 机器故障 DBA 1200+ 改造前 400+ 800+ 400+ 几百TB 3位数/周 2位数/周 0.5台/周 ? GOPS 全球运维大会2018·深圳站 2000+ 改造后 800+ 1600+ 800+ 翻倍 翻倍 不变 2台/周 +2
16. 目录 1 多活难点 2 多活架构 3 数据库改造 4 DBA挑战 5 收益与展望 GOPS 全球运维大会2018·深圳站
17. DBA挑战 • 数据保障 • 数据迁移 • HA • 容量 • DDL GOPS 全球运维大会2018·深圳站
18. DBA挑战-数据保障 • DAL-Reject • DRC-冲突 • DCP-校验 (Data-Check-Partform) GOPS 全球运维大会2018·深圳站
19. DBA挑战-数据保障(DCP) • 变动无需人工干预 • 全量、增量、延时校验、手动校验 • 黑白名单, 自定义规则 • 数据、结构、多维校验 • 延迟、并发、时长 • 修复SQL、配套工具 GOPS 全球运维大会2018·深圳站
20. DBA挑战-数据保障(DCP) • 每日几百套集群数据校验 • 日均校验数据60亿+ • 分钟级别校验频率 • 发现和修复数据一致性问题50+ GOPS 全球运维大会2018·深圳站
21. DBA挑战-数据迁移(D-Bus) • DB&Table迁移 • 增量、实时同步 • 暂停、断点续传 • 单表、Sharding表数据互转 • 数据校验 GOPS 全球运维大会2018·深圳站
22. DBA挑战-HA • EMHA 配置、切换、联动(DAL、DRC) GOPS 全球运维大会2018·深圳站
23. DBA挑战-容量 • 多集群、多机房、不同流量 GOPS 全球运维大会2018·深圳站
24. DBA挑战-DDL • 控制:空间&延时&锁&定时&低峰&风险&时长 GOPS 全球运维大会2018·深圳站
25. DBA挑战-DDL • 类型:多活、非多活 、GlobalZone、多推、Sharding GOPS 全球运维大会2018·深圳站
26. DBA挑战-DDL • 延时:多机房延时控制3-5s GOPS 全球运维大会2018·深圳站
27. DBA挑战-DDL 数量: • 多活工单:4位数/周 • DDL表:4~5位数/周 • 自动/人工:8:2 GOPS 全球运维大会2018·深圳站
28. 目录 1 多活难点 2 多活架构 3 数据库改造 4 DBA挑战 5 收益与展望 GOPS 全球运维大会2018·深圳站
29. 收益 • 打破单机房(地域)容量瓶颈 • 不受单机房(地域)故障影响 • 动态调整各机房流量 GOPS 全球运维大会2018·深圳站
30. 展望 • 多个机房 • Data-Sharding • 自动动态扩缩容 • 多机房强一致 GOPS 全球运维大会2018·深圳站
31. Thanks 高效运维社区 开放运维联盟 荣誉出品 GOPS 全球运维大会2018·深圳站
32. 想第一时间看到高效运维社区 的新动态吗? GOPS 全球运维大会2018·深圳站