最近,公司正打算做ITOO产品,所以前期的技术调研是必不可少的。
本文的将对MySQL Cluster进行简要介绍:
(一)概述
MySQL cluster是Mysql适用于分布式计算机环境的膏使用、高冗余版本。
Cluster的意思是“集群”,指一组计算机(在某些情况下也只计算机的进程),他们作为一个整体向用户提供一组网络资源,其中单个的计算机系统称作是集群的节点。
一个理想的集群是,用户从来不会意识到集群系统底层的节点,在用户看来,集群是一个系统,而不是多个计算机系统。
除此之外,集群的系统管理员可以随意增加和删除集群的节点。
集群一般分为以下两类:
1、高可用集群
致力于提供高度可靠的服务,目的在于减少服务中断时间。如果某个节点失效,他的冗余节点将在极短的时间内接管他的职责。对于用户而来,集群永远不会停机。
分为两种工作方式:
1)容错系统:通常是主从服务器方式。只有当主服务器时效,从服务器立刻代替主服务器向客户提供服务。
2)负载均衡系统:急群众的所有节点都处于活动状态,它们分摊系统的工作负担。
2、高性能计算机群
简称HPC集群,目的在于提供单个计算机所不能提供的强大的计算能力。将问题分解为若干分,多节点同时工作,从而缩短解决问题的时间。
(二)层次结构
有3类节点:
1、管理节点,Management Node
是整个集群的控制中心,负责各个节点的增加、杉树、启动、停止等。在启动MySQL Cluster时,必须先启动管理节点。
启动命令是ndb_mgmd
2、数据节点,Data Node
用于存放数据。集群中至少要有一个数据节点。有两个以上的数据节点可保证集群的高可用性。
增加数据节点,会导致集群的处理速度变慢。
启动命令:ndbd
3、SQL节点
就是普通的mysqld进程,用来访问Cluster的数据。
增加sql节点可提高整个集群的并发访问速度和整体的吞吐量
启动命令:mysqld -ndbCluster
MySQL Cluster的层次结构如下:
Application,代表应用程序,比如:网页
sql,实质就是mysqld进程,为其他应用程序提供读取、写入MySQL数据库服务的接口。
storage,是存放数据的区域,具有高冗余性。
Management,是整个集群的管理中枢,具有最高的控制权限。