【问题标题】:erlang distributed banking systemerlang分布式银行系统
【发布时间】:2011-10-11 19:30:42
【问题描述】:

我试图用 Erlang 来说明分布式应用程序的概念。我的系统目前有一台服务器和一台 ATM。我尽量保持简单。

目前我的应用程序在本地运行。我正在使用gen_server 来建立银行服务器和 ATM 之间的客户端-服务器关系。我还有一个gen_fsm 模块来建议我的 ATM 具有的不同状态。为了存储任何数据,我使用dict 模块(我不想使用数据库使事情变得更复杂)。为了让进程保持活动状态(gen_server 和 gen_fsm),我使用了supervisor 进程。我已经将所有模块包装为一个应用程序,但目前它都是本地的。任何想法都将受到高度赞赏。

我想在两个不同的节点上启动同一个应用程序并说明分布式概念以使用某种故障转移/接管机制,但我不知道要使用哪些模块。

  • 是否必须使用目标系统?(有时我必须对应用程序进行热升级)
  • 这些事情的正确顺序是什么:先升级再分发?

如果有人能给我一些关于如何完成所有这些事情的想法,我将不胜感激。

【问题讨论】:

  • 你是在问你应该首先关注什么,热升级还是分发?没有什么是真正强制性的 :-) 但是在进行分布式系统和热代码升级时,使用目标系统和 OTP 会帮助你很多。
  • 我必须同时做这两件事。我的应用程序已经根据 OTP 规则构建,但我的行为过程(服务器、fsm、主管)都是本地的。我想使用版本将完成热升级的工作。关于分发,我还没有找到任何关于如何创建以及将配置文件放置在每个节点的位置的适当示例。一些指导方针,也许关于如何实现这两件事的顺序会对我很有帮助。谢谢你的及时亚当。

标签: erlang system distributed


【解决方案1】:

我自己从未尝试过,但文档似乎指出: Erlang Release Handling(11.3 分布式系统)。

这是一个非常短的段落,显示了sync_nodes 命令,我建议你阅读整章,因为我注意到并发和分布的概念在 Erlang 中非常普遍,以至于像你这样的问题已经得到解决并包含在一次性密码。

顺便说一句,Erlang 用户指南还有一整章专门介绍 Distributed Applications,这似乎与分布式应用程序配置选项有关,我认为这两个应该可以解决问题。

希望这会有所帮助,如果您需要更多帮助,请尽管询问!

【讨论】:

    猜你喜欢
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 2011-11-05
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多