论坛首页 综合技术论坛

Erlang分布式在linux和windows系统间应该注意的问题

浏览 4654 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-06-29  
    没事做,就在两台机器间测试下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编辑如下:
java 代码
 
  1. 127.0.0.1  localhost localhost  
  2. x.x.x.x    zane      zane   #windows机器的ip和计算机名  

,hosts在windows系统的C:\WINDOWS\system32\drivers\etc目录下,编辑:
java 代码
 
  1. 127.0.0.1       localhost  
  2. x.x.x.x   dennis #linux机器的名称和ip  


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

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

跳转论坛:
Global site tag (gtag.js) - Google Analytics