您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > MySQL高可用架构.
2016MySQL高可用架构邵汉成技术中心CONTENTS目录需要达成的目标高可用:冗余与备份面向读操作的横向伸缩面向写操作的横向伸缩高大上的MySQLClusterReplication与BinLogMySQL监控实现目标高可用响应快可伸缩易监控百万订单/天5百亿元/年冗余与备份冗余:当一个或几个Node出现问题时,系统可以正常运行备份:使用备份可以将Node恢复到Crash之前的状态快速响应快速响应用户请求,用户体验好可随时、按需ScaleoutScalingoutreadsScalingoutwrites监控系统的运行UnderstandtheloadonoursystemKeepakeeneyeonanyproblems大容量驴妈妈系统业务容量目标订单量100万单每天销售量500亿元每年CONTENTS目录需要达成的目标高可用:冗余与备份面向读操作的横向伸缩面向写操作的横向伸缩高大上的MySQLClusterReplication与BinLogMySQL监控高可用提供冗余与备份•冗余:提供多台master和slave,防止单点故障或几个node故障•备份:Crash之后可以迅速恢复冗余故障发生时的恢复计划•SlaveFailures•MasterFailures•DisasterRecovery计划详细的执行方法•基本的准备工作:增加新Slaves,移除Slaves,切换Master•MasterHotStandby•DualMasters•SlavePromotion•CircularReplication方法99.999%高可用MasterHotStandby结构高可用DualMasters结构•Active–Active:两个Master同时接受写入,并将更新数据同步到另一个master。常见用途:根据用户所在区域,用户访问就近的master•Active–Passive:写操作写入activemaster,同时passivemaster只保持与activemaster同步高可用CircularReplication结构Allsubscriberdataisreplicatedtoallsites,andupdatesofdataareallowedinalldatacenters.SlavePromotion高可用traditionalmethodofslavepromotionrevisedmethodforpromotingaslaveCONTENTS目录需要达成的目标高可用:冗余与备份面向读操作的横向伸缩面向写操作的横向伸缩高大上的MySQLClusterReplication与BinLogMySQL监控Replication与BinLog机制Replication基本介绍Replication与BinLog机制BinaryLog基本介绍•基于Statement的复制•基于Row的复制Replication与BinLog机制深入理解Replication结构Replication与BinLog机制GTID:GlobalTransactionID•Eachtransactiononaserverisassignedatransactionidentifier.•assignedtoatransactionbasedontheorderinwhichtheycommitted.•TheGTIDofthetransactionisretainedregardlessofthenumberoftimesthatthetransactionispropagated.CONTENTS目录需要达成的目标高可用:冗余与备份面向读操作的Scaleout面向写操作的Scaleout高大上的MySQLClusterReplication与BinLogMySQL监控读Scaleout对系统Load的帮助面向读操作的Scaleout一台服务器容量为10000TPS,支持写操作4000TPS,读操作6000TPS:增加3台Slaves之后:同步或异步Replication的选择面向读操作的ScaleoutLatency(ms)Transactioncommittime(ms)EquivalenttransactionspersecondExamplecase0.010.14~7,100Samecomputer0.10.5~2,000SmallLAN14.1~240BiggerLAN1040.1~25Metropolitannetwork100400.1~2Satellite同步Replication的延迟和对TPS影响数据表典型的拓扑图面向读操作的ScaleoutHierarchicaltopology路由与负载均衡面向读操作的ScaleoutLoadbalancingontheapplicationlevelUsingaproxytodistributequeries其他特性面向读操作的Scaleout•FilteringReplicationEvents•UsingFilteringtoPartitionEventstoSlavesCONTENTS目录需要达成的目标高可用:冗余与备份面向读操作的Scaleout面向写操作的Scaleout高大上的MySQLClusterReplication与BinLogMySQL监控面向写操作的ScaleoutDualMasters结构是否能Scaleout写操作?面向写操作的ScaleoutSharding•Placingdatageographicallyclosetotheuser•Reducingthesizeoftheworkingset•DistributingtheworkLimitationofSharding•Cross-shardjoins•UsingAUTO_INCREMENT面向写操作的ScaleoutShardingKeyandShardMapping•根据ShardingKey决定如何将表分Shard•Listmapping•Rangemapping•Hashmapping面向写操作的ScaleoutProcessingQueriesandDispatchingTransactions•Howtodispatchtransactionstotherightshard•Howtogettheshardingkeyforthetransaction•HowtousecachingtoimproveperformanceCONTENTS目录需要达成的目标高可用:冗余与备份面向读操作的横向伸缩面向写操作的横向伸缩高大上的MySQLClusterReplication与BinLogMySQL监控高大上的MySQLClusterMySQLCluster架构CONTENTS目录需要达成的目标高可用:冗余与备份面向读操作的横向伸缩面向写操作的横向伸缩高大上的MySQLClusterReplication与BinLogMySQL监控MySQL监控MySQL监控•MySQLMonitoring•StorageEngineMonitoring•ReplicationMonitoringTHANKYOU技术中心
本文标题:MySQL高可用架构.
链接地址:https://www.777doc.com/doc-2889317 .html