2011-07-23 65 views
1

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

目前我的应用程序在本地运行。我正在使用gen_server作为银行服务器和ATM之间的客户端 - 服务器关系。我也有一个gen_fsm模块来建议我的ATM有不同的状态。为了存储我使用dict模块的任何数据(我不想使用数据库使事情更加复杂)。为了保持进程活着(gen_servergen_fsm)我正在使用supervisor进程。我已经将所有模块封装为应用程序,但目前它都是本地的。任何想法将不胜感激。

我想在两个不同的节点上启动相同的应用程序,并说明使用某种故障转移/接管机制的分布式概念,但我对使用哪些模块没有任何意见。

  • 是否必须使用目标系统(在某些时候我必须做一个热升级到应用程序)
  • 什么是正确的顺序来做这些事情:首先升级,然后分发?

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

+0

你问你应该专注于首先,热升级还是分配?没有什么是非常强制的:-)但是在分布式系统和热代码升级时使用目标系统和OTP将会帮助你很多。 –

+0

我必须同时做这两件事。我的应用程序已经根据OTP规则进行了结构化,但我的行为过程(服务器,fsm,主管)都是本地的。我想使用版本可以做热升级的工作。关于分发,我还没有找到任何关于如何创建以及为每个节点放置配置文件的适当示例。一些指导方针,也许关于如何实现这两个事情的顺序将非常有帮助。感谢你的时间亚当。 – ar3tzu

回答

2

我从来没有尝试过,但文档似乎指向: Erlang Release Handling(11.3分布式系统)。

这显示sync_nodes命令一个非常短款,我建议你阅读全篇,因为我注意到,常常并发和分布的概念是如此persavive在二郎山,像你的问题已经得到解决,包括在OTP 。

BTW,二郎神用户指南也有专门为Distributed Applications这似乎与分布式应用程序的配置选项整整一章,我认为,这两个应该做的伎俩。

希望这会有所帮助,如果您需要更多的帮助,只需要问问!