Erlang クラスタ パーティションを処理するための解決策を探しています。基本的に、クラスター参加者が再び到達可能になったときはいつでも、クラスターに戻す必要があります。最も簡単な解決策は、おそらくerlang node monitoringを使用することです。
他の/より良い解決策はありますか?固定ノードリストを必要としないより動的な可能性がありますか?
Erlang クラスタ パーティションを処理するための解決策を探しています。基本的に、クラスター参加者が再び到達可能になったときはいつでも、クラスターに戻す必要があります。最も簡単な解決策は、おそらくerlang node monitoringを使用することです。
他の/より良い解決策はありますか?固定ノードリストを必要としないより動的な可能性がありますか?
既製のソリューションではありませんが、すでに ejabberd のカスタム mod を実行している場合は、クラスタ パーティション後の mnesia 競合を解決するこのコードを統合してみてください。
固定ノード リストを使用して構成する必要のないサードパーティ ライブラリがいくつかあります。私がよく知っているのはredgridとerlang-redis_sd_epmdの 2 つです。おそらく他にもありますが、私はそれらに精通していません。
これらはどちらもredisへの外部依存関係を持っています。これは、何が必要であるかに応じて、望ましい場合とそうでない場合があります。
redgridはより単純な実装ですが、多くの機能はありません。基本的に、erlang ノードは redis に接続し、redis に接続されているすべての erlang ノードは相互に接続を確立します。メタデータをノードに関連付けて、別のノードで取得できます。
erlang-redis_sd_epmdはもう少し複雑ですが、より多くの設定が可能です。たとえば、すべてのノードを自動的に接続するだけでなく、ノードが実行できるサービスを公開し、接続ノードが提供されたサービスに基づいてノードを検索できます。