技术开发 频道

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

  【IT168 评论】2005年2月,去哪儿在北京成立,去哪儿网的数据库也搭建完成。去哪儿网数据库架构师黄勇在SACC大会现场打趣道,那时的数据库就是一个小作坊模式,单机房内的MySQL架构。在这之后,去哪儿网数据库架构共经历了四个阶段,逐渐过渡到今天的跨机房QMHA架构,可异地部署还可保证高可用和安全性。这一路走来,是什么推动了去哪儿网的数据库架构变迁?又遇到了哪些问题?如何解决的呢?

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

  Qunar萌芽与发展期—单机房内的MySQL到单机房内的MMM

  业务发展和技术都相对不太发达的过去,MMM架构是非常受欢迎的一种部署方式,当时广泛应用于各大公司内部。黄勇表示,随着业务发展,这种简单的MMM架构逐渐暴露出了许多问题,比如运维复杂,需要绑定VIP,部署和修改配置文件,周边监控工具也十分匮乏。其次,网络分区也存在很大问题,Master“假死”导致误切换,数据库双写导致数据错乱,VIP没有漂移或者漂移失败等。

  2012年,MySQL 5.6以上版本新特性开始不支持,这也标志着MMM时代的彻底结束。

  Qunar飞速发展期—同机房PXC架构

  随着业务的急速增长,推动了架构的又一次革新。去哪儿网开始应用PXC架构,新加入了哨兵集群,此时的架构已经可以自动failover、手动switchover、读写分离、负载均衡、namespace服务,全局唯一、透明、扩容、迁移和升级。PXC单节点读取可达5W qps,写入可达15K qps。

  去哪儿网之所以后来会放弃PXC选择QMHA,还是因为PXC自身存在一定的局限性。比如节点间机器木桶短板效应、客户端容易雪崩;大事务和密集事务导致PXC节点压力高,fc产生;DDL操作会杀死其他事务,但DDL不能取消;相互校验导致写入性能下降,切换时不影响前端写入,但尽量不要长时间多写;机房间网络延迟高影响客户端QPS,且机器节点越多,QPS影响越大;PXC和MGR等新兴结构导致DBA学习成本变高,需要长期的学习和经验才可以掌握。

  Qunar平稳期—跨机房QMHA架构

  2015年至今,去哪儿网采用跨机房QMHA架构。GTID易于维护和切换,主从节点间可知数据差异,分布式哨兵减少误切换和网络分区raft算法,提高数据节点一致性的同时提高集群安全性和可用性,多线程复制且可以跨机房和网段部。全局namespace通知客户端更新配置。

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

  黄勇表示,日后跨机房QMHA架构会逐渐解决自动补全binlog、延迟处理和权重控制等问题,MHA可以自动补全binlog,PXC可以IST QMHA需要能在failover后自动补全binlog给原master节点,PXC和QMHA都需要做到只读数据源可以根据权重配比进行流控,有助于对特殊机器的特殊处理。

  经历了四个阶段的发展,去哪儿网的数据库架构日趋稳定,足以满足日常业务所需。去哪儿网开发的DBA操作平台—补天融合了去哪儿网数据库整个团队的经验和智慧,如果你感兴趣,不妨来试试!

0
相关文章