2012-04-06 2 views
1

私は2つのタイプの複数のノードを持っています。Erlangはリモートノードの "タイプ"を決定します

ノードの1つのタイプは、特定のサーバーで1つの作業を行い、もう1つは他の作業を行います。

「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種類のサーバーです。

明らかに、type2ノードは、type1とtype2の両方を相互接続するためにここにあります。 Type2サーバーは、すべてが機能するために生きている唯一の「確かな」ノードです。

タイプ1サーバーは動的なので、新しいタイプ1サーバーを実行するたびに、他のすべてのノードに接続するためにタイプ2サーバーをpingします。

少なくとも2つのtype1ノードが稼働している場合は、作業をクラスタリングする必要があります。

だから私はtype1のあるノードのノード()の戻り、から決定したいと思います...

私はatom_to_stringから文字列を取得することができ、その後、返される文字列でTYPE1をチェックしますが、それはそれを行う間違った方法のように思われる...また、特定のポートを使用して制限のために可能ではありません。

何か提案がありがとうございます。 Erlangで

答えて

1

、ノード名は原子及び原子であるあなたが(ギリシャ語、「-トモス」の「分割不可能」を意味します)原子の部分にパターンマッチすることができなくなりますので、定数リテラルです。

残念ながら、各アトムを文字列(文字のリスト)に変換してから、正規表現を適用する必要があります(すでに行っているようです)。

は、私が見ているために、あなたをお勧めします、と言った:

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

OTPはあなたの分散アプリケーションを実現しようとしている事柄の多くのお手伝いをします。

関連する問題