2種類の複数のノードがあります。
ノードの 1 つのタイプは特定のサーバーで 1 つの作業を行い、もう 1 つは別のことを行います。
それらを「type1」と「type2」と呼びましょう。
私はそれらを起動しています:
erl -pa ebin -name type1@sub1.mydomain.com -setcookie abc
erl -pa ebin -name type2@sub2.mydomain.com -setcookie abc
erl -pa ebin -name type1@sub3.mydomain.com -setcookie abc
sub1.mydomain.com、sub2.mydomain.com、および sub3.mydomain.com は、インターネット上の 3 つの異なるサーバーです。
明らかに、type2 ノードは両方の type1 を相互接続するためにここにあります。Type2 サーバーは、すべてが機能するために生きている唯一の「確実な」ノードです。
Type1 サーバーは動的であるため、新しい type1 サーバーを実行するたびに、他のすべてのノードに接続するために type2 サーバーに ping を実行します。
つまり、少なくとも 2 つの type1 ノードが稼働している場合、作業をクラスター化する必要があります。
したがって、nodes() の戻り値から、どのノードが type1 であるかを判断したいと思います...
私はatom_to_stringから文字列を取得し、返された文字列でtype1をチェックすることができますが、それは間違った方法のようです.また、制限のために特定のポートを使用することはできません.
任意の提案をいただければ幸いです。