MySQL Fabric和MySQL Cluster有什么区别


Answers:


20

这三件事彼此无关。我将给您做一个介绍,您可以单独搜索或索取更多详细信息:

MySQL Cluster是我们许多人所称的市场名称-为避免引起您当前所遭受的困惑-“ NDB Cluster”或“ MySQL NDB Cluster”。它是一个同步的,几乎只有内存的键值存储,它允许MySQL使用无共享架构(为NDB Engine提供后端)。它提供自动分片(因此,更好的读写吞吐量)和高可用性。它适用于高吞吐量键值小数据系统,但设置相对复杂(如果未正确配置或以意外方式使用,则会导致问题),而且延迟不是最好的选择-明智的(原始速度)。这是简化版本(可以用于除内存和键值之外的更多功能,但它是围绕它设计的)。在我看来,这是一个非常好的工程,但是它的用例有限,因为它是与常规MySQL服务器不同的产品,需要单独下载(并且需要使用特定的引擎)。

MySQL Fabric用python编写的组工具/中间件,允许在复制的GTID环境中管理一组常规MySQL服务器。它本身不是集群,但它便于一个人的管理。它具有(目前)Java和Python连接器的链接,因此它可以自动处理服务器的分片和高可用性,但它是常规MySQL服务器和常规复制之上的一层(可以使用InnoDB等常规存储引擎) 。到目前为止,复制是异步的(或半同步的),因此它本身可能无法提供最佳的一致性和安全性。在将来的5.7版本中,可能会更改。但是,这种方法的延迟开销较小,并使用了MySQL DBA更熟悉的复制技术。MySQL Fabric在社区中是一个相对较新的孩子,因此尚未扩展,但似乎是Oracle对竞争对手的基于Galera的集群的反应(以及宣布的同步复制)。

如果需要分片和HA,则可以使用两种以前的产品之一,但可能适用于完全不同的场景。

WebScaleSQL不是HA解决方案,就像以前的HA解决方案一样,它只是几个公司在MySQL的fork / version中使用的名称,它们在其中共享所需的特定补丁,也许Oracle尚未应用。据我所知,它是由Facebook,Twitter,LinkedIn和Google创建的,他们在该通用基础之上重新构建了自己的MySQL版本。他们不提供支持或二进制版本。如果您是最终用户,则可能不应该使用它,但您应密切注意该项目,以了解它会带来什么变化或其他供应商的回应。

如果您想学习/从MySQL HA /扩展开始,从基本的MySQL复制开始(虽然可能不是最好的复制,但是最简单的开始),则可以从那里继续使用其他解决方案:DRBD [ sic],GTID复制,NDB,Galera,钨。


为什么在DRBD名称后面加上“ [sic]”?我看过它们,从技术角度看,它们似乎给人留下了深刻的印象。
Vérace

DRBD是一种块级技术,这意味着它对数据库或其缓冲区一无所知。不要期望OLTP系统具有出色的性能。它不能是双活的(即使不是在只读模式下也是如此),如果MySQL崩溃,则必须恢复它在本地崩溃的状态,并且不能保护您免受数据库损坏。从逻辑上讲,它不是纯粹的“无共享”技术,它更多是分布式RAID,因此不适用于MySQL。对于低写入负载或需要同时分发多个协议的情况,它非常有用。否则,基于行的半同步复制会更好。
jynus

@Vérace...概括地说,这是一个用例异议(MySQL集群),在其他情况下(可能无法使用更高级别的协议/可能更合适),我对此技术一无所知。
jynus

我完全理解-缓冲的观点很不错-如您所说,DRBD对MySQL的内部知识一无所知-即,发生崩溃时提交但尚未写入磁盘的内容将丢失。
Vérace

2

MySQL Fabric被实现为MySQL Fabric节点/进程(执行管理功能)和支持Fabric的连接器,它们能够将查询和事务直接路由到最合适的MySQL Server。MySQL Fabric节点在其状态存储区(这是一个MySQL数据库)中存储状态和路由信息。

MySQL Cluster是一项在无共享系统中实现内存数据库集群的技术。无共享架构使系统能够使用非常便宜的硬件,并且对硬件或软件的特定要求最少。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.