我使用 MySQL 集群 7.1.15a。
我有 2 个节点,ndb_mgm -e 显示:
[ndbd(NDB)] 2 node(s)
id=3 @X (mysql-5.1.56 ndb-7.1.15, starting, Nodegroup: 0, Master)
id=4 @Y (mysql-5.1.56 ndb-7.1.15, starting, Nodegroup: 0)
(忽略启动状态,我刚启动集群)
节点 id 3 是主节点
- 这是什么意思 ?
- 主节点和从节点有什么区别?
无论如何我使用mysql节点连接,所以我不选择连接哪个数据节点。
- 是否在 Master 上进行写入并在 Slave 上进行读取?
- 当我连接到 mysql 节点时,这是否透明地发生?
在 ndb_mgm show 命令的输出中标记为“主”的数据节点是一些集群内部管理任务的协调者。例如,它协调由于 DDL 命令对分布式字典的更改,并管理节点加入和离开事务。“主”角色是动态的,通常分配给集群中运行时间最长的数据节点,仅在该节点发生故障时才移动。
“Master”角色与 MySQL 复制中的“Master/Slave”概念完全无关,也与集群内节点之间的数据复制无关。或许它被称为“协调者”或“领导者”会更好。正如您所说,您无需担心 MySQLD 使用哪些数据节点,对于大多数操作来说都是等效的,并且会自动处理。
回答您的具体问题:在这种情况下,master 意味着协调检查点和模式修改的是这个特定节点(创建/删除/更改表)
数据的责任在所有节点上平均分担。事务协调的责任也在所有节点上平均分担。
就其使用位置而言,MySQL Cluster 在一系列网络、电信、政府用例中得到了很好的证明,并且随着 7.2 版本(目前处于开发版本)的扩展,它支持更快的复杂 JOIN 性能,本机memcached API,新的异地复制选项
这里有更多关于 7.2 的内容:http: //dev.mysql.com/tech-resources/articles/mysql-cluster-7.2.html
以及当前客户用例列表(我们可以在这里公开谈论):http: //mysql.com/customers/cluster/
集群中没有主/从,节点都处于活动状态。Master 标签是内部的东西,你不必关心它。
@Tom:你确定你知道 mysql 集群吗?成为特定用例并不意味着“奇怪”。更准确地说,当你有大量的小事务时,MySQL Cluster 可以提供最好的服务,因为它是一个并行数据库。如果您有少量大笔交易,如果不适合您。但是,如果您有小交易,您可以在节点之间分配它们。
马西莫