3、MMM(Master-Master Replication Manager for MySQL)
今天禀享重要包含三方面内容:一是常见的MySQL高可用架构;二是分布式数据库高可用实践;三是基于keepalive的MySQL高可用改革。第一部分会介绍业界一些经典的MySQL高可用解决筹划,第二部分和第三部分分别介绍网易在分布式数据库和单节点MySQL上的高可用运维实践。
一、常见的MySQL高可用架构
MySQL高可用重要涉及两个方面,一是客户端若何切换,若何主动failover,二是多个MySQL节点之间若何做数据同步。业界MySQL高可用的解决筹划有很多,总结起来竽暌剐几类:大年夜客户端主动切换的角度来看重要有两类:一类是基于HA同步软件的MySQL高可用,用户经由过程VIP拜访数据库,然后第三方组件监控MySQL的状况,控制VIP的漂移。还有一类是基于API调用的MySQL高可用,把MySQL主大年夜状况保护在客户端,应用法度榜样可以经由过程API调用控制主大年夜切换,进行数据同步。
MySQL多节点的数据同步筹划也有多种,最常用的是基于binlog的数据同步,其次还有基于共享存储的数据同步,以及第三方本身实现的数据同步协定(如Galera)。
1、基于HA同步软件实现的高可用筹划
如图所示,基于HA同步软件的MySQL高可用主如果经由过程VIP作为对外的拜访人口,正常情况下VIP绑定在Master上,当Master出现故障后,可以将VIP切换漂移到Slave上。大年夜而实现了一个故障failover的过程。这种基于VIP的高可用筹划,最常用的数据同步方法是应用MySQL原生的binlog复制方法,当然,在成本许可的情况下,也可以选择应用SAN之类的共享存储解决筹划。我们这边重点介绍的┞氛样binlog复制或者其他软件层次的数据同步方法。
基于HA同步软件的高可用方法的重要特点包含:
- 构造简单、轻易治理;
- 不支撑多写、standby属于备机;
- 不包管数据一致性;
- 入侵性小,对用户透明。
2、MHA(Master High Availabitliy)
下面,我们来介绍几种典范的MySQL HA同步软件。在业界应用最为广泛,技巧最为成熟的HA同步软件之一是MHA。MHA全称是Master High Availability,是一种一主多大年夜的数据库高可用解决筹划。他的特点是在保障高可用自切换的前提下,最大年夜限度的保战?鲶年夜数据的一致性。
我们先来看下MHA的架构图:
一次完全MHA故障切换流程如下:
- 保存故障的master节点的binlog日记;
- Manager查找最新更新的slave节点;
- 应用差别的relay log日记到其他的slave;
- 在slave节点上应用大年夜master保存的binlog日记;
- 晋升一个slave为新的master;
- 使其他的slave连接新的master进行复制。
除了MHA以外,还有一个老牌的MySQL主动切换套件MMM。
与MHA比拟,MMM是基于主主复制的故障切换。也就是不支撑大年夜多个slave中选择最新的一个,而是只能切换到特定的主主复制大年夜节点。
4、基于API调用的MySQL高可用
arping -I eth1 -c 5 -s VIP GATEWAY
刚才介绍的两种MySQL高可用解决筹划,重要都是基于VIP切换的,长处是对应用法度榜样没有入侵,然则缺点是不敷灵活,并且体系的靠得住性取决于HA软件本身的靠得住性。如VIP通知产生问题,或者keepalive过程本身挂了,都可能导致切换出现问题。除了这种解决筹划,还有一种是在客户端实现的MySQL高可用 – 基于API调用的MySQL高可用。也就是JDBC或者其他数据库驱动可以自立选择MySQL节点。这种实现筹划可能应用的不是特别广泛,然则也有它自身的应用处景,它有如下特点:
- 架构较重,运维相对复杂
- 应用灵活,有必定开辟成本
- 支撑数据分片、分库分表、读写分别等高等特点
HA-JDBC 就是一种典范的基于API调用的MySQL高可用筹划,它可以在应用法度榜样中设备多个MySQL地址,由HA-JDBC实现选主/樊篱故障节点以及多个应用法度榜样之间的连接状况通知。HA-JDBC可以实现如下功能:
- 根本的failover
- 读写分别
- 节点状况通知
- 负载均衡
数据同步(先写主,然后同时写多个大年夜节点,如不雅主写掉败,则从新选主,如不雅大年夜写掉败,樊篱大年夜) 弱一致性。
刚才介绍的多是在客户端角度看到的MySQL高可用切换技巧,下面再介绍几种MySQL数据同步的高可用解决筹划,MySQL最经典的数据同步方檀卷是应用binlog进行数据同步,这种数据同步的优势是架构简单、易于治理,对主办事的机能影响相对较小。缺点是不克不及保战?鲶年夜完全一致,并且只支撑单写。下面介绍几种能包管主大年夜完全一致,并且支撑多节点写的筹划。
5、Galera MySQL的高可用及特点
Galera架构如图所示:
推荐阅读
固然以前写过 若何抓取WEB页面 和 若何大年夜 WEB 页面中提守信息。然则感到照样须要一篇 step by step 的教程,不然没有一个总体的熟悉。不过,没想到这个教程居然会变成一篇译文,在这>>>详细阅读
本文标题:MySQL高可用在网易的最佳应用与实践
地址:http://www.17bianji.com/lsqh/35128.html
1/2 1