Java教程:MySQL高可用方案对比(三)

开课吧开课吧锤锤2021-02-26 09:52

    互联网发展至今也不过几十年,但是却是近几年最火热得行业,无论是软件本身行业,还是由它衍生得行业,都是火热得不行,这导致越来越多得人开始涉足这个行业,人群越来越大,对程序员的需求就越来越多,虽然很多人从事着程序员工作,但是市场的需要远远大于市场上存在的人才,所以对于这样一个高薪,高就业的行业,在当今社会中,是不可多的机会。

    2.5.分布式协议

    分布式协议可以很好解决数据一致性问题。比较常见的方案如下:

    2.5.1.MySQLcluster

    MySQLcluster是官方集群的部署方案,通过使用NDB存储引擎实时备份冗余数据,实现数据库的高可用性和数据一致性。

Java

    优点:

    全部使用官方组件,不依赖于第三方软件;

    可以实现数据的强一致性;

    缺点:

    国内使用的较少;

    配置较复杂,需要使用NDB储存引擎,与MySQL常规引擎存在一定差异;

    至少三节点;

    2.5.2.Galera

    基于Galera的MySQL高可用集群,是多主数据同步的MySQL集群解决方案,使用简单,没有单点故障,可用性高。常见架构如下:

Java

    优点:

    多主写入,无延迟复制,能保证数据强一致性;

    有成熟的社区,有互联网公司在大规模的使用;

    自动故障转移,自动添加、剔除节点;

    缺点:

    需要为原生MySQL节点打wsrep补丁

    只支持innodb储存引擎

    至少三节点;

    2.5.3.POAXS

    Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。这个算法被认为是同类算法中最有效的。Paxos与MySQL相结合可以实现在分布式的MySQL数据的强一致性。常见架构如下:

Java

    优点:

    多主写入,无延迟复制,能保证数据强一致性;

    有成熟理论基础;

    自动故障转移,自动添加、剔除节点;

    缺点:

    只支持innodb储存引擎

    至少三节点;

    3.总结

    随着人们对数据一致性的要求不断的提高,越来越多的方法被尝试用来解决分布式数据一致性的问题,如MySQL自身的优化、MySQL集群架构的优化、Paxos、Raft、2PC算法的引入等等。

    而使用分布式算法用来解决MySQL数据库数据一致性的问题的方法,也越来越被人们所接受,一系列成熟的产品如PhxSQL、MariaDBGaleraCluster、PerconaXtraDBCluster等越来越多的被大规模使用。

    随着官方MySQLGroupReplication的GA,使用分布式协议来解决数据一致性问题已经成为了主流的方向。期望越来越多优秀的解决方案被提出,MySQL高可用问题可以被更好的解决。

    以上内容由开课吧老师叶戈尔提供,更多Java教程尽在开课吧广场Java教程频道。

有用
分享