mysql ndb_MySQL NDB Cluster概述
MySQL NDB Cluster是一个适用于分布式计算环境的高可用性、高冗余版本的MySQL。
NDB集群由一组计算机组成,称为主机,每个计算机运行一个或多个进程。这些进程称为节点,可能包括MySQL服务器(用于访问NDB数据)、数据节点(用于存储数据)、一个或多个管理服务器,以及可能的其他专门的数据访问程序。在NDB集群中这些组件的关系如下所示:
NDB集群
所有这些程序一起工作来形成一个NDB集群。当数据被NDB存储引擎存储时,表(和表数据)存储在数据节点中。这样的表可以直接从集群中的所有MySQL服务器(SQL节点)访问。因此,在一个将数据存储在集群中的工资单应用程序中,如果一个应用程序更新了雇员的工资,那么查询这些数据的所有其他MySQL服务器都可以立即看到这个变化。
NDB集群核心概念
NDB CLUSTER(也称为NDB)是一个内存存储引擎,提供高可用的数据持久化功能。
NDB CLUSTER存储引擎可以配置一系列故障转移和负载平衡。
集群节点
集群节点有三种类型,在最小的NDB集群配置中,至少会有三个节点。
1. Management node
这种类型节点的作用是管理NDB集群中的其他节点,执行诸如提供配置数据、启动和停止节点以及运行备份等功能。因为这个节点类型管理其他节点的配置,所以应该首先启动这种类型的节点,在任何其他节点之前。执行ndb_mgmd命令启动该节点。
2. Data node
这种类型节点的作用是存储集群数据。一个副本足以用于数据存储,但不提供冗余;因此,建议使用2(或更多)副本来提供冗余,从而获得高可用性。执行ndbd或ndbmtd(多线程)命令启动该节点。NDB集群表通常存储在内存中,而不是在磁盘上(这就是为什么我们将NDB集群称为内存中的数据库)。然而,一些NDB集群数据可以存储在磁盘上。
3. SQL node
在NDB Cluster中SQL节点是一个使用NDBCLUSTER存储引擎的传统MySQL服务器。
期望在生产环境中使用三个节点的设置是不现实的。这样的配置不提供冗余;为了从NDB集群的高可用性特性中获益,您必须使用多个数据和SQL节点。还强烈推荐使用多个管理节点。
客户端
1. 标准MySQL客户端
NDB集群可以与用PHP、Perl、C、C++、Java、Python、Ruby等编写的现有MySQL应用程序一起使用。这样的客户端应用程序发送SQL语句并接收来自MySQL服务器的响应,它们充当NDB集群SQL节点,就像它们与独立的MySQL服务器交互一样。例如,使用Connector/J 5.0.6和更高版本的Java客户端可以使用jdbc:mysql:loadbalance://url以透明地实现负载平衡。
2. NDB客户端
客户端程序可以使用NDB API(一个高层次的C++ API,NDBCLUSTER存储引擎)直接访问NDB集群数据,绕过任何可能连接到集群的MySQL服务器。
对于NDB集群来说,也可以使用NDB集群连接器来为NDB集群编写Java应用程序。NDB集群连接器包括ClusterJ,这是一种类似于对象关系映射持久性框架的高级数据库API,如Hibernate和JPA,它们直接连接到NDBCLUSTER,因此不需要访问MySQL服务器。在NDB集群中也为ClusterJPA提供了支持,这是一个利用ClusterJ和JDBC的优势的NDB集群的OpenJPA实现。ID查找和其他快速操作是使用ClusterJ(绕过MySQL服务器)执行的,而可以从MySQL查询优化器中获益的更复杂的查询是通过MySQL服务器发送的,使用JDBC。
3. 管理客户端
这些客户端连接到管理服务器,并提供启动和停止节点的命令,启动和停止消息追踪(仅调试版本),显示节点版本和状态,启动和停止备份,等等。这种类型的程序的一个例子是ndbmgm管理客户端提供的NDB集群。
mysql ndb_MySQL NDB Cluster概述相关推荐
- MySQL NDB Cluster部署方案与实践
MySQL Cluster集群 一.概述 MySQL Cluster是MySQL适用于分布式计算环境的高实用.高冗余版本.他采用了NDB Cluster存储引擎,允许在一个Cluster中运行多个 ...
- MySQL高可用架构InnoDB Cluster (和NDB Cluster是两码事)
MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluste ...
- MySQL NDB Cluster
1. MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署"内存中"数据库的 Cluster .通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求 ...
- MySQL NDB Cluster 搭建
格拉德韦尔在<异数>:成功之人并非天资超人一等,而是付出了持续不断的努力.只要经过1万小时的锤炼,任何人都能从平凡变成超凡.要成为某个领域的专家,需要10000小时:如果每天工作八个小时, ...
- APT安装MySQL NDB Cluster
提醒 MySQL APT库支持在Debian和Ubuntu系统上安装MySQL NDB Cluster.因为Ubuntu 20.04或更高版本不支持mysql-cluster-community-au ...
- MySQL NDB Cluster使用docker compose一键部署
本文主要用来学习MySQL NDB Cluster 解决学习过程中的痛点:需要开启N台VMware虚拟机,电脑不堪重负 使用docker部署,完美解决 本文使用的docker image: mysql ...
- MySQL NDB Cluster 集群简介
简介 MySQL Cluster 是一个实时.高度可扩展且符合 ACID 要求的事务型数据库,既可以实现 99.999% 的可用性,又具备开源产品低 TCO 的优势.MySQL Cluster 采用一 ...
- 【MySQL】MySQL NDB Cluster安装
MySQL集群是一个无共享的(share-nothing).分布式节点架构的存储方案,目的是提供容错性和高性能. MySQL NDB Cluster架构如图: MySQL NDB Cluster架构按 ...
- MySQL高级 - 存储引擎 - 概述
存储引擎概述 和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎. 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 .存储引擎 ...
- 6 MySQL 集群Cluster
文章目录 6 MySQL 集群Cluster 6.1 MySQL 主从复制 6.1.1 主从复制架构和原理 6.1.1.1 服务性能扩展方式 6.1.1.2 MySQL的扩展 6.1.1.3 复制的功 ...
最新文章
- selenium操作chrome时的一些配置
- fpga map测试_一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法与流程
- leetcode455. 分发饼干
- 01json转字符串
- Linux虚拟文件系统VFS的相关数据结构和操作
- document.ready 与 onload 的区别
- Seay源代码审计系统
- QTQString(UTF8)数据转GBK
- ElasticJob - 任务执行过程解析
- vuejs --- 子组件向父组件传值(子传父)
- 股票大作手回忆录投机感悟
- 服务器选云主机还是VPS主机呢?
- Doxygen错误error:failed to run html help compiler on index.hhp
- 正则匹配以xx开头以xx结尾的单词(转载)
- 网卡驱动的队列数据的接收e100
- arcgis标注牵引线_ArcEngine设置有牵引线的标注
- 应力应变基础理论分析
- python和scre_前端大牛们都学过哪些东西?
- 如何快速实现在网页中调用文档扫描仪 (2)
- AnnotationConfigApplicationContext@51016012 has not been refreshed yet