前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL NDB Cluster介绍

MySQL NDB Cluster介绍

作者头像
MySQLSE
发布2020-09-28 15:14:32
4.7K0
发布2020-09-28 15:14:32
举报

最近翻译了好几篇关于NDB的文章,相信有很多人会有疑问,NDB Cluster究竟是个什么东西?它是一款新产品吗?它和InnoDB Cluster有什么不同?它是MySQL吗?它怎么使用?在这篇文章里,我将为大家介绍一下MySQL NDB Cluster是什么?它的架构和特征,以及它的适用场景。

MySQL NDB Cluster并不是一款新产品,它的最新版本8.0最近刚刚发布。追溯历史你会发现它最初的开发是由爱立信完成的,是的你没有看错,就是那个电信行业的爱立信,当初的名字叫做“Ericsson Network Database”。看到这里你大概会猜到这是一款什么样的产品了。它最初的目标对象是用来管理电信行业的数据,通过id进行关联的简单数据。最初的NDB是使用C++ API来访问数据的,MySQL将其收购以后,将其与SQL进行整合,现在的NDB既可以使用SQL,也可以C++ API 以及Java、memcached、Node.js等各种API进行访问。

MySQL NDB Cluster与MySQL Server(人们普遍认知的MySQL)是完全不同的产品,它使用非共享架构,通过多台服务器构建成集群,实现多点读写的关系型数据库。它具有在线维护功能,并且排除单一故障,具有非常高的可用性。此外,它的主要数据保存在内存中,可以高速处理大量的事务,是面向实时性应用程序的一款数据库产品。

MySQL NDB Cluster架构

MySQL NDB Cluster由三种节点构成,SQL节点、数据节点及管理节点。

上图是由4个数据节点、2个SQL节点及2个管理节点组成的NDB集群

数据节点ndbmtd:负责管理数据、索引,控制事务处理。

SQL节点mysqld:应用程序和数据节点的SQL接口,用户认证,赋予权限等。

管理节点ndb_mgmd:启动停止集群、配置集群、备份,仲裁等。

数据节点:NDB Cluster的核心功能,用于保存数据、索引,控制事务。插入的数据按照主键的哈希值分散到不同的节点组里面保存(每个节点组保存部分数据),另外每个节点组内,数据会复制到不同的数据节点上以实现冗余。上图中节点组1保存了数据分片1和2两部分数据,节点组2里面保存了数据分片3和4两部分数据,每个节点组里面由2个数据节点构成,即使是每个节点组里面有一个节点发生故障,集群也能够持续运行。

SQL节点:相当于增加了NDB存储引擎的MySQL服务器,数据节点作为NDB存储引擎使用,如果使用其它的MySQL存储引擎,例如InnoDB,MyISAM等,数据将会保存在SQL节点上。应用程序通过SQL节点访问数据节点,使用方法与通常的MySQL一样,SQL节点会自动找到正确的数据节点将数据找回。

管理节点:管理节点用于配置集群和各个节点,各个节点需要连接管理节点,取得配置信息后加入集群。此外管理节点还充当仲裁者角色,以防止发生网络分区后出现脑裂现象。

NDB Cluster特征

高扩展性:NDB Cluster 可以在内部自动进行数据分片,随着数据节点的增加,可以做到非常高的读写扩展。

高可用性:最新版本高达99.9999%的高可用性,每年停机运维时间不超过1分钟。因为采用了非共享的架构,不会出现单一故障,发生故障时的故障转移时间非常短,并且各种维护工作可以在线进行,因此极大地提高系统可用性。

实时性:数据大部分情况下保存在内存中,可以快速执行事务,满足实时性高要求的应用需求。

异地容灾:可以利用NDB Cluster的复制功能,对NDB Cluster进行异地容灾,与MySQL的复制功能不同,NDB Cluster可以进行双向复制,并且能够对数据冲突进行校验。

SQL+NoSQL:数据节点上保存的数据除了可以通过SQL节点访问,还可以通过NoSQL访问。对比其它的KV型数据库,NDB Cluster具有如下优点:

  • 支持ACID的完整事务。
  • 数据具有持久性和冗余性。
  • 自动故障转移。
  • 在线备份。

低成本:由于NDB Cluster不使用共享存储,一般的服务器即可运行,因此可以为用户节省大量的硬件成本。

适用场景和案例

通过上面的介绍,您大致对NDB Cluster有了一些了解。基于它最初的基因,NDB Cluster广泛应用于电信行业,例如阿尔卡特朗讯,诺基亚,NEC等有大量的使用案例。在线游戏行业通过NDB进行会话管理,例如:Big Fish Games、Blizzard Entertainment、Zynga。此外,由于NDB具有非常高的可用性,美军航母的战机管控系统,PayPal的反欺诈系统均采用了NDB。NDB广泛适用于关键任务型系统。更多案例可以访问:https://www.mysql.com/why-mysql/case-studies/#en-5-28

以上是关于NDB的一个非常简明的介绍,今后计划写一下更详尽的内容。

感谢您关注MySQL!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档