您的位置:首页 > 数据库 > MySQL

MySQL Cluster 核心概念

2015-07-12 00:48 471 查看
MySQLCluster 核心概念

NDBCLUSTER(NDB)是一个内存存贮引擎,它提供高可用和数据持久的特性。

NDBCLUSTER提供失效转移和负载均衡的选项,但是从集群水平来看这些特性是容易提供的。MySQL 集群的NDB存贮引擎包含一个完备的数据集,这个数据集只依赖于集群中的其它数据。

在集群中每个部分被认为是一个节点,这些节点是独立于MySQL服务的。

注意:

在其它环境下,节点指的是一个计算机,但是在MySQL集群中节点指的是一个进程。单个计算机上可以运行多个节点。运行多个节点的计算机称为主机(host)。

集群中最少有三个节点,分别如下:

管理节点:管理节点管理着集群中的其它节点,提供配置文件、启动和停止节点、备份。这个节点必须先于其它节点启动,一个管理节点可以使用 ndb_msgd的命令来启动。

数据节点:数据节点用来存储集群的数据。有多少节点和fragment数据就有多少备份。举个例子,两个备份,每个都有两个fragment,那么你需要4个数据节点。一个数据备份应该是足够的,但是不能提供冗余。因此,推荐2个备份来提供冗余性,以及高可用性。一个数据节点可以使用ndbd的命令来启动。

SQL节点:这个节点用来使用数据。在集群中SQL节点是一个典型的MySQL服务。一个SQL节点,是一个mysqld进程。使用--ndbcluster和 --ndb-connectstring选项来启动。

一个SQL节点实际上是一个专门的API节点,使其它应用可以使用集群的数据。另外一个API节点的例子是ndb_restore工具,这个工具用来备份集群数据。使用NDB的API是可以写出类似的应用的。

重要:

在生产环境中部署一个三节点的环境是不现实的。这种配置不能提供冗余;要使用集群的好处你必须保证你的环境中有多个SQL和数据节点。多管理节点也是推荐的。



配置一个集群涉及到配置每个单独的节点以及节点之间的通信。MySQL集群致力于在处理器功率、内存空间、带宽之间找到均衡。

另外,为了提供一个单点配置,所有的配置数据都在一个配置文件里面。

管理节点管理着集群中的文件和日志。每个集群中的节点都从管理节点取配置数据,因此需要一种方式来决定管理节点在哪儿。当有趣的事件在数据节点发生时这些事件将会传送到管理节点,信息也会被写到集群的日志里面。

另外,集群客户进程和应用是可以有任意数量的。这些程序包含了标准的MySQL客户端,NDB-特定的API程序,和管理客户端。这些东西将在下面几个段落详细讨论。

标准MySQL客户端。MySQL集群可以与既存的MySQL程序一起工作,比如PHP, Perl, C, C++, Java, Python, Ruby等等。这些客户端程序与MySQL集群的工作方式大体上与标准MySQL的方式一样。

MySQL客户端使用一个MySQL集群以一个数据源的方式是有好处的,好处就是可以使用集群的负载均衡以及故障转移。举个例子,java客户端使用J5.06链接器时可以使用jdbc:mysql:loadbalance:// URLs(在J5.1.7中被改进)这种方式来使链接集群时可以显式的获得负载平衡。更多信息请看:Using Connector/J with MySQL Cluster.

NDB客户端程序。客户端程序也可以直接访问数据库从NDB存储引擎。绕过任何可能链接到集群的MySQL服务,使用NDB API,一个高水平的C++ API。这些程序特别有用,当一些特定的需求产生的时候,这些需求不需要SQL接口。更多信息看:The NDB API.

NDB特定的Java程序也可以用来访问集群通过使用MySQL Cluster Connector for java。这些接口有像Hibernate的ClusterJ可以对象映射的方式访问集群的接口,也有像JPA的直接访问集群的接口,他们都可以绕开MySQL服务。7.1以后都支持ClusterJPA—一个OpenJPA的MySQL集群的实现,影响着ClusterJ和JDBC的性能。ID查询和其它的快速操作可以在ClusterJ中使用,与此同时一些复杂的操作可以使用MySQL查询。

7.3以后同样支持JavaScript和Node.js的查询。

内存缓存API,从ndb的内存缓存实现,更多信息看:Memcache API for MySQL Cluster

管理客户端。这些客户端链接到了管理服务并且体on个启动、停止节点的高档命令。查看节点信息、启动和关闭备份。一个例子是,mysql cluster的管理客户端ndb_mgm。这些程序可以用MGM API 来编写。

Oracle也提供了可用的mysqlcluster管理客户端。它提供的比较高档和方便。

事件日志。Mysql 集群按类别存放日志(启动、关闭、错误、检查点),级别,严重。两种事件:

集群日志:记录集群的事情。

节点日志:单个节点的日志。

注意:一般看集群日志就行了,节点日志只在开发中用的比较多。

检查点。一个检查点就是事务真正在磁盘上生效的点。两种检查点:

本地检查点,具体到单个节点的检查点,但是通常会发生在每个节点上。

全局检查点,当所有节点同步时就会触发这种节点,几秒一次。

更多信息:MySQLCluster Data Node File System Directory Files.

本文下载:
http://download.csdn.net/detail/zhounanzhaode/8891193
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: