周彦伟 - PXC与QMHA,去哪儿网MySQL数据库架构的哼哈二将
去哪儿网在2015年Oracle技术嘉年华(OTN)分会场中,由周彦伟带来的演讲内容,集中展示了PXC和QMHA作为去哪儿网MySQL数据库架构中的核心组件,是支撑去哪儿网稳定运营的关键技术。在了解这些技术之前,我们先要了解去哪儿网的业务构成以及业务对数据库(DB)的具体需求。 去哪儿网的业务覆盖了旅游搜索平台、机票、酒店、度假、门票、火车票等多个领域。这些业务对数据库的需求可以分为两大类:交易类需求和数据类需求。 交易类需求关注的是事务的处理,这类需求强调数据的一致性、高可用性,以及对实时性强的响应。去哪儿网的业务规模大,交易量高,需要数据库能够处理高并发的读写操作,并确保数据的一致性。因此,去哪儿网选择了Percona XtraDB Cluster(PXC)作为其交易类需求的数据库解决方案。 PXC是一个开源的高性能数据库集群解决方案,基于Percona Server和Galera Cluster技术。它支持True Multi-Master功能,可以实现多主节点之间的同步复制,保证了所有节点都是可读写的,没有主从切换的需要。PXC能够提供同步复制,支持多线程从节点,并且在不使用虚拟IP(VIP)的情况下也可以实现故障转移操作。PXC还支持基于证书的复制,确保事务的原子性、全局有序性和群组通信,允许事务以全局事务标识(GTID)的方式顺序排列。在架构上,PXC集成了MySQL Sentinel、Java客户端代理、配置中心、Zookeeper以及相关的硬件支持,可以实现自动节点配置和故障恢复。 然而,PXC并非没有缺点。它在处理DDL操作时可能会导致MDL锁的问题,大型事务的处理可能会有性能瓶颈,网络流量和gcache.size的设置也是需要精心配置的细节。另外,PXC在Total Order Isolation(TOI)与Rolling Schema Upgrade(RSU)之间的选择也需要根据实际情况权衡。 对于数据类需求,去哪儿网选用了QMHA(Quick Multi-Master High Availability)。QMHA关注的是跨机房的数据复制,用于解决PXC无法完美处理的大事务问题,比如涉及到跨数据中心的事务处理。QMHA的复制机制包括GTID和半同步复制,采用Percona XtraBackup工具进行数据备份。QMHA的高可用设计在提升数据可用性方面有重要作用,尤其在处理跨机房的业务场景时显得尤为重要。 在演讲内容中,周彦伟对PXC和QMHA的技术细节进行了深入的阐述,详细介绍了这些技术组件的内部工作原理和配置。例如,PXC中的Galera Flow Control机制用于防止复制过程中的问题,比如通过wsrep_local_recv_queue和wsrep_flow_control_sent等参数来控制复制的反馈机制;gcs.fc_limit、gcs.fc_master_slave、gcs.fc_factor等参数用于优化Galera集群中的流量控制。在PXC的架构中,还包含了MySQL Sentinel用于监控和故障转移、Java客户端代理用于简化客户端连接,以及配置中心和Zookeeper用于集群管理和配置。 QMHA的部分则着重介绍了其在跨机房复制和大事务处理上的优势,以及它如何补充PXC在一些特定场景下的不足。QMHA的设计允许新节点无需完整的状态转移(State Snapshot Transfer,SST)就可以加入集群,这对于提升系统扩展性非常有帮助。同时,QMHA提供了滚动模式的模式升级(Rolling Schema Upgrade,RSU)以及基于证书的复制机制,确保数据的一致性和可用性。 周彦伟所介绍的这些架构和组件,对于管理和优化大规模的MySQL数据库环境有着实际的指导意义。去哪儿网通过PXC和QMHA的结合使用,有效解决了业务发展中的数据库挑战,实现了高并发交易的实时处理和数据的跨机房高可用复制。这些技术和经验对于其他希望构建高效、稳定数据库架构的公司来说,具有很高的参考价值。
- 粉丝: 306
- 资源: 58
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助