温馨提示:这篇文章已超过405天没有更新,请注意相关的内容是否还可用!
MySQL高可用解决方案涵盖了从主从复制到InnoDB Cluster架构的多种技术。本文主要介绍了这些技术的基本原理和优势。通过主从复制,可以实现数据备份和读取负载均衡;而InnoDB Cluster架构则提供了更高的数据可用性和容错能力,确保在节点故障时数据依然可以访问。本文详细解析了这些技术的工作原理和配置方法,为构建可靠的MySQL系统提供了重要参考。
大家好,我是哪吒。
爱奇艺每天都为亿级用户提供7×24小时不间断的视频服务,为了满足这一需求,我们的平台必须拥有高可用架构,确保用户可以方便地获取海量、优质、高清的视频资源,如果服务出现故障,大量用户将无法正常观看视频,爱奇艺技术产品团队针对使用数据库服务的应用,提供了不同的SLA保障,对于重要的S级应用,我们将RTO(恢复时间目标)控制在分钟级别;对于A级应用,RTO控制在10分钟级别,本文将重点介绍我们在MySQL高可用实现方面的方案。
一、基于MHA(Master High Availability Manager)二次开发的高可用方案
MHA是目前比较成熟及流行的MySQL高可用解决方案,为了进一步提升其性能,我们基于MHA进行了自研,MHA能在30秒内进行故障转移,并最大限度地保障数据的一致性,我们的方案主要针对MHA的一些缺点进行了优化,如使用配置文件管理主备关系、不能重复切换、实例增减需要重启Manager、Manager单点并且不能自动切换等问题。
二、MySQL HA(High Availability)架构简介
爱奇艺自研的MySQL HA系统由HA Master和HA Agent两部分组成,三个HA Master组成一个最小集群单元,这个单元通过raft协议实现高可用,HA Agent负责故障检测、解析和传输binlog、清理relay log以及MGR(MySQL Group Replication)的高可用,切换模块则负责具体的故障切换,支持自动和手动两种切换方式,除了对主库支持故障切换外,也具备对从库故障切换的能力。
HA的选主规则
为了确保选主的准确性和高效性,HA需要一套复杂的选主规则,这些规则包括排除坏的从库、选择最新的从库作为候选主库、根据切换策略选择同DC(数据中心)、同region或跨region的slave等,如果没有满足条件的slave,则需要人工干预。
补全diff binlog
在Master切换过程中,可能会存在三种类型的diff binlog,为了确保数据的一致性,需要生成这些diff binlog文件,并顺序应用以恢复从库的数据,如果是使用gtid复制,需要先应用这些文件恢复数据后再进行其他操作;如果是非gtid复制,则需要先改变主库到最新的slave再恢复数据并应用未发送的diff binlog文件完成binlog补齐。
数据一致性保障及其他措施
我们结合多种内部系统如监控系统、资产管理系统、CMDB、链路追踪以及混沌工程平台,开发了一个面向业务的应用运维平台,该平台提供一站式服务,包括拨测、巡检、资源使用分析、调用链路追踪以及故障演练等功能,以提升应用的可用性和安全性,我们还通过其他措施如半同步复制和MGR来保障数据的一致性。
六、《MySQL高可用解决方案——从主从复制到InnoDB Cluster架构》购书指南
作者徐轶韬是甲骨文公司MySQL解决方案首席工程师,他为中国金融、政府、航空运输等行业的MySQL用户提供相关产品的售前咨询、企业级产品介绍、解决方案服务以及推广和普及MySQL数据库在社区的使用,他还负责运营公众号“MySQL解决方案工程师”,并推出开源社区活动及社区贡献荣誉,本书详细介绍了MySQL的官方高可用解决方案,包括MySQL主从复制、MySQL ReplicaSet组复制、InnoDB Cluster及InnoDB ClusterSet等相关内容,还介绍了MySQL 8.0的部分内容,如文档存储、MySQL Shell及MySQL Router等,通过本书,读者可以全面了解MySQL的生态和工具,并将这些解决方案灵活运用到实际生产中。
还没有评论,来说两句吧...