zoukankan      html  css  js  c++  java
  • 企业主流MySQL高可用集群

    选型

    目前最流行的是:主从复制、基于Galera的方案

    企业主流MySQL高可用集群

    了解 MySQL 集群之前,先看看单节点数据库的弊病:

    • 大型互联网程序用户群体庞大,所以架构需要特殊设计。
    • 单节点数据库无法满足大并发时性能上的要求。
    • 单节点的数据库没有冗余设计,无法满足高可用。
    • 单节点 MySQL无法承载巨大的业务量,数据库负载巨大。

    一、MHA

    属于是读(从)写(主)分离,主从复制

    MHA,即MasterHigh Availability Manager and Toolsfor MySQL,是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具,该工具仅适用于MySQL Replication 环境,目的在于维持Master主库的高可用性。

    MHA(Master High Availability)是自动的master故障转移和Slave提升的软件包.它是基于标准的MySQL复制(异步/半同步).

    Replication 采用异步复制,无法保证数据的一致性。

    Replication集群写入操作:
    在这里插入图片描述
    当一个写入请求到达 Master数据库时,Master数据库执行写入操作,然后 Master 向客户端返回写入成功,同时异步的复制写入操作给 Slave数据库,如果异步复制时出现问题,从数据库将无法执行写入操作,而客户端得到的是写入成功。这也是弱一致性的体现

    详见:https://blog.51cto.com/sumongodb/1951495

    二、MM+keepalived

    双主配合keepalived这种架构设计,也是基于主从复制的原理而搭建的。

    使用MySQL主主复制技术+Keepalived是一种简单、便捷的解决方案,在高可用集群环境中,keepalived使用VIP,使用Keepalived自带的服务监控功能和自定义脚本来实现MySQL故障时自动切换,非常灵活。

    详见:https://blog.51cto.com/sumongodb/1953244

    三、PXC(基于GaLera协议)

    PXC是percona公司的percona xtraDB cluster.简称PXC。它是基于GaLera协议的高可用集群方案。可以实现多个节点间的数据同步复制以及读写,并且可保障数据库的服务高可用及数据强一致性。

    PXC 采用同步复制,事务在所有集群节点要么同时提交,要么不提交。

    下面看看 PXC写入操作:
    在这里插入图片描述
    当一个写入请求到达PXC集群中的一个 mysql(node1数据库) 数据库时,node1数据库会将该写入请求同步给集群中的其他所有数据库,等待所有数据库都成功提交事务后,node1节点才会将写入成功的结果告诉给 node1的客户端。

    PXC 的强一致性对保存高价值数据时特别重要。

    详见:https://blog.51cto.com/sumongodb/1956086

    PXC方案 和 Replication方案对比

    两种集群方案特性如下图:
    在这里插入图片描述

    1. 先看看 PXC方案
      在这里插入图片描述
      很明显 PXC方案在任何一个节点写入的数据都会同步到其他节点,数据双向同步的(在任何节点上都可以同时读写)。

    2. Replication 集群方案:
      在这里插入图片描述
      Replication方案只能在Master数据库进行写操作,在Slave数据库进行读操作。如果在Slave数据库中写入数据,Master数据库是不能知道的(单向同步的)。


    作者:不敲代码的攻城狮
    出处:https://www.cnblogs.com/leigq/
    任何傻瓜都能写出计算机可以理解的代码。好的程序员能写出人能读懂的代码。

     
  • 相关阅读:
    Composite in Javascript
    Model Validation in Asp.net MVC
    HttpRuntime.Cache vs. HttpContext.Current.Cache
    Controller Extensibility in ASP.NET MVC
    The Decorator Pattern in Javascript
    The Flyweight Pattern in Javascript
    Model Binding in ASP.NET MVC
    Asp.net MVC
    jQuery Ajax 实例 全解析
    ASP.NET AJAX入门系列
  • 原文地址:https://www.cnblogs.com/leigq/p/13406578.html
Copyright © 2011-2022 走看看