去哪儿网数据库架构:PXC与QMHA详解

需积分: 0 62 下载量 134 浏览量 更新于2024-07-21 收藏 9.46MB PDF 举报
"周彦伟在2015年Oracle技术嘉年华上分享了去哪儿网的MySQL数据库架构,重点介绍了Percona Xtradb Cluster (PXC) 和 Quorum Machine Health Assistant (QMHA),这两种技术在去哪儿网的数据库架构中起到了关键作用,以满足其交易类和数据类的需求,提供一致性和高可用性。" 周彦伟的演讲中提到的“哼哈二将”是指在去哪儿网MySQL数据库架构中的两大核心组件——Percona Xtradb Cluster (PXC) 和 Quorum Machine Health Assistant (QMHA)。去哪儿网作为一个涵盖旅游搜索平台、机票、酒店、度假等多元化业务的网站,对数据库有着严格的交易类需求,如一致性、高可用性,以及数据类需求,如跨网络、密集写操作和最终一致性。 Percona Xtradb Cluster (PXC) 是一个基于Galera Cluster的分布式、多主复制的MySQL解决方案,它实现了真正的多主模式,允许数据在所有节点间同步复制。Galera Cluster的核心特性包括: 1. **Synchronous Replication**:所有节点间的数据更新是同步的,确保了数据的一致性。 2. **Multi-threaded Slave**:每个从节点可以并行处理多个线程,提高了数据复制效率。 3. **No Master-Slave Failover Operations or Use of VIP**:无需传统的主从切换操作,集群内没有单一故障点。 4. **Automatic Node Provisioning**:节点可以自动添加和恢复,减少了运维复杂性。 5. **Certification-based Replication**:基于事务认证的复制,保证了全局顺序和事务原子性。 6. **Group Communication and Transaction Ordering (GTID)**:通过组通信和事务ID来确保事务的全局顺序。 7. **State Transfers**:包括全状态快照传输(SST)和增量状态传输(IST),用于新节点加入或集群恢复。 Quorum Machine Health Assistant (QMHA) 是去哪儿网用来监控和管理数据库健康状况的工具,它可能与PXC配合工作,确保在节点故障时能够快速响应,保持服务的高可用性。 在Galera Cluster中,Flow Control机制是用于避免数据复制积压的关键组件。Flow Control通过replication feedback mechanism限制数据发送速率,避免节点间的不均衡。相关的状态变量如`wsrep_local_recv_queue`、`wsrep_flow_control_sent`、`gcs.fc_limit`、`gcs.fc_master_slave`和`gcs.fc_factor`,都是用于调整和监控这个过程的。 PXC提供了高一致性的实时数据复制,而QMHA则增强了整个系统的稳定性,两者共同构建了去哪儿网强大的数据库架构,满足了业务增长和用户需求。