Erlang节点short names 和long names
2011-05-31 22:02
141 查看
erl node启动方法
short name:erl -sname Name
erl -sname Name@ShortHost
longname:
erl -name Name
erl -name Name@ShortHost
erl -name Name@FullHost
说明:
Name :: atom() || string() ShortHost :: atom() || string(), 不可含有"."。比如"myhost" FullHost :: [ShortHost()] || Ip, 比如"test.mydomain.com"和"8.34.135.3"
short name 和 long name主要为格式上的区别,long name中Host如果为域名,需要进行DNS解析。
我们也可以在hosts中添加类似:
ip ShotHost
的Entry使shortname name节点支持其他主机(请参考后面介绍)
Note
注意,shot name的节点和long name的节点不能互相通信。
示例
short name:假设本机/etc/hosts配置为:8.27.86.135 da6600.fb.joyent.us
erl -sname cheng % 启动了一个名叫:cheng@da6600 的Node
erl -name cheng % 启动了一个名叫:cheng@da6600.fb.joyent.us 的Node
如果我们的本机hosts配置中,没有指定域名,那么需要我们指定Host:
erl -sname cheng@da6600 % 启动了一个名叫:cheng@da6600的Node
long name:
erl -name cheng@da6600
erl -name cheng@da6600.fb.joyent.us
erl -name cheng@8.27.86.135
请注意,此3个longname Node是同一个Node
应用
很多资料中,当进行分布式程序开发时,需要经历下面的步骤本机单个节点进行测试,
本机多个节点进行测试,
多台主机进行接近真实环境的测试
其中第2步,常常是使用 erl -sname Name 类似的方法,产生Node,因此我们印象中,好像sname只能是在本机的情况下使用?
通常情况下,shortname是限于本机的多个节点,longname可以跨越多台主机(通过IP,DNS解析)。
当然我们也可以像使用long name Node一样,使用short name Node。不同的是long name可以通过DNS进行解析,而short name必须手动的在hosts中添加对应的映射。这样做的目的就是将本地的请求转发到目标的主机。
好了让我们使用short name来试验一下
server1(ip:8.27.86.135)
启动node:
erl -sname foo@server1
server2(server2也可以在内网当中,此时链接只能由server2发起)
/etc/hosts中添加:
8.27.86.135 server1
随后启动node:
erl -sname bar > net_kernel:connect_node('foo@server1'). true > nodes(). > [foo@server1]
这样,两个节点就已经链接了。
同理,我们也可以在server1中添加一个条目,为server2其一个ShortName,随后连接它。
到此,对于short name, long name的使用应该比较清晰了。
转载:http://erlangdisplay.iteye.com/blog/321933
相关文章推荐
- Erlang节点连接
- erlang节点通信小测试
- [Erlang危机](4.0)连接远程节点
- Erlang节点重启导致的incarnation问题(转)
- 在局域网内启动节点时的“Can't set long node name”异常
- erlang 启动多节点
- erlang局域网内节点通信——艰难四步曲 (转)
- erlang 启动并关联一个节点
- 关于erlang节点显示“*** Terminating erlang”的问题
- [Erlang]Erlang与Java如何进行节点通信
- erlang局域网内节点通信——艰难四步曲
- 利用jinterface在java和erlang节点之间通讯
- 如何使用erlang 的shell 访问远程节点
- [Erlang]节点通讯的几种形式及问题分析
- erlang 服务节点名称
- mongodb-erlang driver Replica Set Secondary节点分配不均衡的问题
- erlang节点编程
- [Erlang]Erlang与C的节点通信
- 一次erlang 节点CPU严重波动排查
- 一次erlang 节点CPU严重波动排查