【发布时间】: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