不同物理服务器上的Erlang模块

时间:2015-10-31 14:44:17

标签: erlang distributed-computing otp mnesia

我有一个具有以下结构的OTP应用程序:diagram

需要什么:

  1. 服务(1,2,3)需要互相交谈。
  2. 一台物理服务器上的Service1,其他物理服务器上的service2等
  3. 为所有服务共享Mnesia数据库。
  4. 我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用rpc启动服务,然后手动链接以重现您指定的结构......

但结构本身看起来不对。主要问题是您的群集最终与某些从属节点不对称。但是,通常只生成一个推送到每个节点的OTP版本,因此在执行启动代码时完全相同,因此所有服务都在每个节点上启动。

  • 这为您提供了更轻松的发布
  • 故障转移时更高的可靠性

所以我建议您更改您的架构以支持这种工作方式。我假设你基本上希望每个服务都在负载均衡的单个节点上运行。因此,您可以尝试找到一个能够完全满足您要求的框架。

例如,您可以查看riak_core以构建分布式应用程序