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概述相关推荐

  1. MySQL NDB Cluster部署方案与实践

    MySQL Cluster集群 一.概述 ​ MySQL Cluster是MySQL适用于分布式计算环境的高实用.高冗余版本.他采用了NDB Cluster存储引擎,允许在一个Cluster中运行多个 ...

  2. MySQL高可用架构InnoDB Cluster (和NDB Cluster是两码事)

    MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluste ...

  3. MySQL NDB Cluster

    1. MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署"内存中"数据库的 Cluster .通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求 ...

  4. MySQL NDB Cluster 搭建

    格拉德韦尔在<异数>:成功之人并非天资超人一等,而是付出了持续不断的努力.只要经过1万小时的锤炼,任何人都能从平凡变成超凡.要成为某个领域的专家,需要10000小时:如果每天工作八个小时, ...

  5. APT安装MySQL NDB Cluster

    提醒 MySQL APT库支持在Debian和Ubuntu系统上安装MySQL NDB Cluster.因为Ubuntu 20.04或更高版本不支持mysql-cluster-community-au ...

  6. MySQL NDB Cluster使用docker compose一键部署

    本文主要用来学习MySQL NDB Cluster 解决学习过程中的痛点:需要开启N台VMware虚拟机,电脑不堪重负 使用docker部署,完美解决 本文使用的docker image: mysql ...

  7. MySQL NDB Cluster 集群简介

    简介 MySQL Cluster 是一个实时.高度可扩展且符合 ACID 要求的事务型数据库,既可以实现 99.999% 的可用性,又具备开源产品低 TCO 的优势.MySQL Cluster 采用一 ...

  8. 【MySQL】MySQL NDB Cluster安装

    MySQL集群是一个无共享的(share-nothing).分布式节点架构的存储方案,目的是提供容错性和高性能. MySQL NDB Cluster架构如图: MySQL NDB Cluster架构按 ...

  9. MySQL高级 - 存储引擎 - 概述

    存储引擎概述 ​ 和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎. ​ 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 .存储引擎 ...

  10. 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 复制的功 ...

最新文章

  1. selenium操作chrome时的一些配置
  2. fpga map测试_一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法与流程
  3. leetcode455. 分发饼干
  4. 01json转字符串
  5. Linux虚拟文件系统VFS的相关数据结构和操作
  6. document.ready 与 onload 的区别
  7. Seay源代码审计系统
  8. QTQString(UTF8)数据转GBK
  9. ElasticJob - 任务执行过程解析
  10. vuejs --- 子组件向父组件传值(子传父)
  11. 股票大作手回忆录投机感悟
  12. 服务器选云主机还是VPS主机呢?
  13. Doxygen错误error:failed to run html help compiler on index.hhp
  14. 正则匹配以xx开头以xx结尾的单词(转载)
  15. 网卡驱动的队列数据的接收e100
  16. arcgis标注牵引线_ArcEngine设置有牵引线的标注
  17. 应力应变基础理论分析
  18. python和scre_前端大牛们都学过哪些东西?
  19. 如何快速实现在网页中调用文档扫描仪 (2)
  20. AnnotationConfigApplicationContext@51016012 has not been refreshed yet

热门文章

  1. 供应链库存管理-库存控制策略
  2. 【NiosII训练】第二篇、FPGA驱动AD9854高级篇
  3. 《MFC添加语音功能》
  4. Hacking Vim: 插件管理器Pathogen(02)
  5. C++编程入门系列之目录和总结
  6. Refinement Network新框架
  7. TDMA噪音产生机制及抑制
  8. 如何检测猥琐的私有SDWAN隧道协议
  9. 计算机网络.第四节课.笔记.CRC循环冗余检验、透明传输、SOH、EOT、PPP点对点协议、零比特填充、字节填充
  10. word有符号时 对齐_对齐Excel货币符号时遇到问题