集中服务器上的 mnesia 数据复制

问题描述 投票:0回答:1

我是 mnesia 的新手。根据我对 mnesia 中数据复制的理解,它用于将数据库复制到集群中的每个节点,因此如果主节点崩溃,则其余节点之一可以作为候选节点服务器。这种技术对于去中心化服务器很有用,如果主节点崩溃,任何节点都可以充当服务器。

我的问题是,集中式服务器是否需要数据库复制,只有一台服务器可以管理数据库?

server erlang mnesia
1个回答
0
投票

Mnesia 中没有“主”节点的概念。

当 Mnesia 在节点上启动时,它会创建一个模式。要创建 Mnesia 集群,任何节点都可以通过从已加入的任何其他节点复制架构来加入该集群。复制模式后,节点还可以选择复制用户定义的表。

当许多节点像这样加入时,Mnesia 将确保集群中某处始终有 3 个数据物理副本。这是您通常无法控制的事情,但让 Mnesia 为您管理。这意味着当您读取数据时,有时必须从其他节点(通过网络)获取部分数据,但这也是为您管理的。

Erlang 应用程序和数据库在同一个程序中运行,这使得访问速度更快、更容易。通常,Mnesia 数据库不会与 Erlang 应用程序分离,因为它没有或很少有优势(可能有我没有考虑的边缘情况)。

但要回答你原来的问题: “我的问题是,集中式服务器是否需要数据库复制,而只有一台服务器可以管理数据库?”

这些问题对我来说有点不清楚,但我认为你在问: “数据库复制是否需要集中式主服务器”

这个问题的答案是否定的,因为 Mnesia 没有主节点的概念。加入 Erlang 集群的所有 Erlang 节点(意味着它们都复制相同的模式)都位于同一级别。这是一个扁平的层次结构。

© www.soinside.com 2019 - 2024. All rights reserved.