Erlang分布式在linux和windows上的注意事项

没事做,就在两台机器间测试下Erlang分布式的例子,一个台是windowsXP,一台装的redHat9,没有详细的文档,自己摸索着搞成功了,记录下。

1.首先,分布式Erlang的实现提供了自有的安全机制来预防未经授权的Erlang系统访问。Erlang系统与别的机器进行交互时必须有同样的magic cookie,保存在一个称为.erlang.cookie的文件中,为了在两台不同机器间测试,需要编辑一份.erlang.cookie,内容随便,比如:
just_test

然后将这份文件拷贝到windows环境变量HOMEPATH所在的目录 ,比如我的是C:\Documents and Settings\Admin,而linux拷贝到环境变量$HOME指向的目录,比如我这里是/root。特别注意一点,linux的.erlang.cookie文件需要设置权限为-r--------,也就是400,仅所有者可读:
chmod 400 .erlang.cookie

2.因为Erlang中的node名称是name@host,host是计算机名,因此在两台机器上都需要将计算机名和ip加进hosts文件,这个文件在linux下是在/etc/hosts,你可以用vi编辑如下:

127.0.0.1  localhost localhost
x.x.x.x    zane      zane   #windows机器的ip和计算机名

,hosts在windows系统的C:\WINDOWS\system32\drivers\etc目录下,编辑:

127.0.0.1       localhost
x.x.x.x   dennis #linux机器的名称和ip


3.第三步,要启动节点,通过命令erl -sname 或者erl -name,在此之前需要启动epmd进程,它负责映射符号名到机器地址
在两个机器都执行:
epmd -daemon

4.至此配置完成,可以测试下Erlang分布式编程在不同的机器和系统之间了(比如《Erlang入门(三)--分布式编程》中的ping pong例子),very cool!

posted on 2015-06-26 10:10  神奇的旋风  阅读(641)  评论(0编辑  收藏  举报

导航