2012-04-06 65 views
1

我有2个类型的多个节点。节点的Erlang确定远程节点的“类型”

一种类型,会做一个特定的服务器上的一个工作,其他人会做别的事情。

我们称之为“type1”和“type2”。

我与他们推出:

erl -pa ebin -name [email protected] -setcookie abc 
erl -pa ebin -name [email protected] -setcookie abc 
erl -pa ebin -name [email protected] -setcookie abc 

sub1.mydomain.com,sub2.mydomain.com和sub3.mydomain.com是通过互联网3台不同的服务器。

显然,2型节点是在这里既相互连接在一起的TYPE1。 Type2服务器是唯一可以工作的“确定”节点。

的Type1服务器是动态的,所以每次我运行一个新的TYPE1服务器,它将ping通2型服务器,以连接到所有其他节点。

的是,当至少2 TYPE1节点启动和运行,我需要集群工作。

所以我想从节点确定()返回时,该节点是TYPE1 ...

我将能够得到atom_to_string的字符串,然后检查与返回的字符串类型1,但这似乎是一个错误的方式来做到这一点...由于限制,使用特定的端口也是不可能的。

任何建议,将不胜感激。

回答

1

在Erlang中,节点名称是原子和原子是常量文字,所以你将不能够在一个原子的部分图案匹配(在希腊语,“A-TOMOS”是指“unsplittable”) 。

不幸的是,你必须做一些像每个原子转换为字符串(字符的列表),然后你的正则表达式应用到它(似乎你已经这样做)。

说,我建议你看看到:

http://learnyousomeerlang.com/distributed-otp-applications

OTP会帮助你很多你想实现你的分布式应用程序的东西。