2012-02-20 57 views
1

我已经开始用erlang玩alittle,并且发现它最有趣。Erlang,通过Erlang互联网连接节点

我的问题是这样的,我想建立一个服务器来运行一个web服务。该服务应该写在erlang中,并且应该很容易发生变化,我希望能够做很多热代码交换,代码在另一台机器上编写和测试,它有一种方法可以很容易地从一个erlang noce到另一个,而不必将其包装在文件中并传输文件?

我想我会重新听到关于能够在erlang虚拟机内传递闭包的信息,这是可行的吗?或者可能甚至用开发机器上的编译代码更新服务器机器上的线程?

我知道这听起来像是一种冒险的做事方式,而且它是,但它是我心目中的定位。

+1

请看这个问题:http://stackoverflow.com/q/7917108/431620并仔细阅读其答案: http://stackoverflow.com/a/7927649/431620 – 2012-02-21 14:29:52

回答

1

如果我理解正确,你想要从一个节点加载模块到另一个节点。在这种情况下,您可以使用在所有节点上加载模块“Module”的bif nl(Module)。或者您可以使用nc(Module)当然节点必须共享相同的cookie并且必须连接(请参阅net_adm:ping(Node)

1

你不能真正摆脱文件传输到你的目标部署机器。至少你需要发送新版本的模块。

一旦你更新了模块,你可以选择更新飞行范围的代码,只需重新加载一个模块(如code:load_file/1)。一个完整的OTP upgraderebar可能会帮助这里)或之间的东西(如updo或mochiweb reloader模块)。这真的取决于你正在尝试做什么,更改模块之间的依赖关系等。