MySQL集群搭建实现高可用(mysql-cluster)之原理概述

MySQ-Cluster集群架构

图片1.png

SQL节点:给上层应用层提供sql访问,不存储数据库数据。

Menagement 管理节点:管理整个集群。 启动,关闭集群。 通过ndb_mgmd命令启动集群

Storage 存储/数据节点:保存cluster中的数据。数据节点,可以提供副本。实现数据冗余。

MySQL集群使用NDB引擎:是一种 “内存中”的存储引擎 , 它具有可用性高和数据一致性好的特点。


拓展:NDB引擎介绍:

NDB引擎

MySQL Cluster 使用了一个专用的基于内存的存储引擎——NDB引擎,这样做的好处是速度快, 没有磁盘I/O的瓶颈,但是由于是基于内存的,所以数据库的规模受系统总内存的限制, 如果运行NDB的MySQL服务器一定要内存够大,比如16G, 32G, 甚至128G。NDB引擎是分布式的,它可以配置在多台服务器上来实现数据的可靠性和扩展性,理论上 通过配置2台NDB的存储节点就能实现整个数据库集群的冗余性和解决单点故障问题。

缺陷

·       基于内存,数据库的规模受集群总内存的大小限制

·       基于内存,断电后数据可能会有数据丢失,这点还需要通过测试验证。

·       多个节点通过网络实现通讯和数据同步、查询等操作,因此整体性受网络速度影响,因此速度也比较慢

优点

·       多个节点之间可以分布在不同的地理位置,因此也是一个实现分布式数据库的方案。

·       扩展性很好,增加节点即可实现数据库集群的扩展。

·       冗余性很好,多个节点上都有完整的数据库数据,因此任何一个节点宕机都不会造成服务中断。


MySQL-Cluster同步集群和Master-Slave异步集群的差异

【分类】:分为同步集群和异步集群。

1)同步集群:(mysql cluster)

      结构:(data + sql + mgm节点)

      特点:

        1. 1) 内存级别的,对硬件要求较低,但是对内存要求较大。换算比例为:1:1.1;

        1.2) 数据同时放在几台服务器上,冗余较好;

        1.3) 速度一般;

        1.4) 建表需要声明为engine=ndbcluster

        1.5) 扩展性强;

        1.6) 可以实现高可用性和负载均衡,实现对大型应用的支持;

        1.7) 必须是特定的mysql版本,如:已经编译好的max版本;

        1.8) 配置和管理方便,不会丢失数据

 

2)异步集群(mysql replication)

   结构:(master + slave)

   特点:

      2.1) 主从数据库异步数据;

      2.2) 数据放在几台服务器上,冗余一般;

      2.3) 速度较快;

      2.4) 扩展性差;

      2.5) 无法实现高可用性和负载均衡(只能在程序级别实现读写分离,减轻对主数据库的压力);

      2.6) 配置和管理较差,可能会丢失数据

版权声明:
作者:WaterBear
链接:https://l-t.top/1816.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>