2012-04-06 52 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會幫助你很多你想實現你的分佈式應用程序的東西。