Qunar数据库架构师 黄勇:去哪网数据库架构发展历程

世问梅

2017/11/14 发布于 技术 分类

MMM和MHA等利用monitor来监控主机存活的方案具有很多弊端,比如网络分区和跨机房部署等,qunar网的PXC和QMHA利用多节点哨兵监控、自动化切换保证了集群主从数据一致性和集群的高可用性。QMHA作为Qunar网除PXC外另一种数据库高可用方案给业务带来更加快速安全的服务。PXC和QMHA方案一路走来,希望给大家带来新的解决思路。

文字内容
1. 去哪⽹网Q数unS据arA数库C据C架库20架构1构7发师展历程 ⻩黄勇
2. ⾃自我介绍 2007~2011, Oracle DBA:智联、淘宝 SACC2017去IOE⼤大潮下的改变 2011~now, MySQL DBA:百度、去哪 thunderbird.huang@gmail.com wx: elnino_1114
3. Contents 1 早期的Qunar数据库 - MMM SACC20172 ⾃自我⾰革新的开始 - PXC 3 另⼀一把利利器器的诞⽣生 - QMHA 4 多种数据存储技术 5 我们的平台 - 补天
4. Qunar数据库的四个时代 单机房内的 MySQL 2005~2011 Qunar萌芽期 “⼩小作坊模式” 跨机房 QMHA架构 2015底~now SACC2017单机房内的 MMM 2011~2013 Qunar发展期 同机房 PXC架构 Qunar平稳期 异地机房部署保证 ⾼高可⽤用和安全性 2013底~now Qunar⻜飞速发展期 利利⽤用PXC保证集群 强⼀一致性 简单的VIP⾼高可⽤用
5. Qunar数据存储时间历程⼤大事记 单机MySQL SATA\SAS 2011年年前 2011年年 MMM SATA/SAS SACC2017Redis提供缓存和存储 192GB内存/万兆⽹网卡 HBase数据库 实时在线写⼊入和读取 SATA/SAS 2013年年 2013年年底 2014年年 2015年年 PXC⾼高可⽤用 PCIe-SSD QMHA⾼高可⽤用 SAS/PCIe-SSD 跨机房⾼高可⽤用容灾
6. Qunar数据库架构的组成 SACC2017PXC Qunar数据库架构 MMM QMHA
7. MMM的基本架构 SACC2017
8. MMM架构的缺点 MMM 缺点 运维复杂 绑定VIP 部署和修改配置⽂文件 周边监控⼯工具匮乏 ⽹网络分区 SACC2017Master“假死”导致误切换 数据库双写,导致数据错乱 VIP没有漂移或者漂移失败 ⽆无法跨⽹网段 VIP不不能跨⽹网段 VIP不不能跨机房 机房容灾根本⽆无从谈起 新特性的不不⽀支持 2012年年已经停⽌止版本更更新 MySQL5.6以上版本新特性的不不⽀支持 落后的⾼高可⽤用⽆无法匹配新技术的发展
9. PXC的基本架构 SACC2017
10. PXC架构特点 ⾃自动切换 ⾃自动failover ⼿手动switchover SAC读读写写C分分离2离 017 负载均衡 全局服务 namespace服务 全局唯⼀一、透明 扩容、迁移和升级
11. PXC的性能 SACC2017 PXC单节点读取可达5W qps PXC单节点写⼊入可达15K qps 以7:3的读写⽐比,单节点可达3W qps
12. PXC的缺点 Flow Control 节点间机器器⽊木桶短板 流量量控制,客户端容易易雪崩 01 ⼤大事务 ⼤大事务和密集事务 PXC节点压⼒力力⾼高,fc产⽣生 02 03 DDL操作 DDL杀死其他事务 DDL不不能取消 多节点写⼊入 相互校验,写⼊入性能下降 切换时不不影响前端写⼊入 04 但尽量量不不要⻓长时间多写 SACC2017PXC 缺点 集群节点跨机房 05 机房间⽹网络延迟⾼高 影响客户端QPS 且机器器节点越多QPS影响越⼤大 06 DBA运维起点⾼高 PXC和MGR等新兴结构 DBA学习成本⾼高 ⻓长期的学习和经验
13. QMHA的基本架构 SACC2017
14. QMHA的技术特点 GTID GTID易易于维护和切换 主从节点间可知数据差异 Sentineld 分布式哨兵 减少误切换和⽹网络分区 raft算法,⾃自动切换 Semi-Sync SACC2017 提⾼高数据节点⼀一致性的同时 提⾼高集群安全性和可⽤用性 多线程复制 且可以跨机房和⽹网段部署 ZooKeeper 全局namespace 通知客户端更更新配置
15. QMHA/PXC解决的问题 ⽆无⽹网络分区 多机房的分布式哨兵判断 MySQL实例例的健康情况 0事务丢失 在failover和switchover时, 没有事务丢失 且PXC的集群数据强⼀一致性, QMHA的弱之但性能较好,⽽而且 机器器越多同步越快 集中配置管理理 后台数据库配置中⼼心存储 和维护线上所有PXC和 SAQCPMXCHC2A017 跨机房⽹网段 QMHA的特点,多机房部 署提⾼高节点间的同步效率 提⾼高机房容灾的安全性 快速切换 failover切换只需要8-16s且 没有误切换 switchover只需要2秒内 切换逻辑可控 切换逻辑可以由情况和参数⽽而定, ⼤大事务或者主从延迟时不不发⽣生 switchover和不不提供线上服务等
16. QMHA后续改进的问题 ⾃自动补全 binlog MHA可以⾃自动补全binlog,PXC可以IST QMHA需要能在failover后⾃自动补全binlog给原master节点 2017某个从库因为某种原因出现延迟时,需要特殊处理理 SACC所有从库都出现延迟⼜又该如何? PXC和QMHA都需要做到: 延迟处理理 权重控制 只读数据源可以根据权重配⽐比进⾏行行流控,有助于对特殊 机器器的特殊处理理
17. MMM、PXC和QMHA的对⽐比 各个架构 MMM/ 对⽐比 MHA PXC QMHA ⼀一致性 可⽤用性 数据丢失 ⼀一般 强⼀一致 较好 SACC2017⼀一般,受⽹网 络影响 主从切换可 能会数据丢 ⼀一般,受⽹网 很好,⽹网络 络影响 影响⼩小,可 0数据丢失 sem跨i-地sy域nc时 0数据丢失 运维成本 ⾄至少2失台,运 ⾄至少3台, 维要求低 PXC运维⻔门 ⾄至少2台,运 维要求低 槛较⾼高
18. 两⼿手抓,两⼿手都要硬 SACC2017关系型数据库 PXC和QMHA ⾮非关系型数据库 Redis和HBase
19. 我们的平台 - 补天 SACC2017 Qunar DBA操作平台
20. 我们的平台 - 补天 数据库基础平台 PXC管理理 QMHA管理理 MMM管理理 REDIS管理理 HBASE管理理 机器器资源 账号管理理 备份归档 DBA值班 DBA⼯工具 ⼯工单申请 SQL审核 SACC2017DBA运维 数据库巡检 内部服务 内部服务监控 数据库申请 慢查询分析 DBA⼩小⼯工具 账号权限 监控报警 需求反馈吐槽 数据库迁移 ⾃自助信息查询 ⼀一键初始化
21. The Future • 数据库将来的发展⽅方向 SACC2017• DBA未来的⽅方向 • 你将何去何从
22. SACC2017