私はErlangを使って分散アプリケーションの概念を説明しようとしています。私のシステムは現在、1台のサーバーと1台のATMを持っています。私はできるだけシンプルにしています。erlang分散バンキングシステム
私のアプリケーションはローカルで実行されます。私はgen_server
を使用して、銀行サーバーとATMの間のクライアントとサーバーの関係にしています。私はgen_fsm
モジュールを持っていて、私のATMにはさまざまな状態が示唆されています。あらゆるデータを格納するために、私はdict
モジュールを使用します(私はデータベースを使用してもっと複雑にしたくありません)。プロセスを生存させるために(gen_server
とgen_fsm
)、私はsupervisor
プロセスを使用しています。すべてのモジュールをアプリケーションとしてラップしましたが、現時点ではすべてローカルです。どんなアイデアも高く評価されます。
私は2つの異なるノードで同じアプリケーションを起動し、分散型の概念をいくつかの種類のフェールオーバー/テイクオーバーメカニズムを使用するように説明することを考えていましたが、どのモジュールを使用するかについてのアイデアはありません。
- は、ターゲット・システムを使用することが必須です(いくつかの点で私は、アプリケーションへのホットアップグレードを行う必要があります)
- これらの事を行うには正しい順序何?:最初にアップグレードして配布しますか?
誰かが私にそれらのすべてのものを達成する方法についていくつかのアイデアを与えることができたら、私は非常に感謝します。
まず、ホットアップグレードまたはディストリビューションに重点を置く必要があるのは何ですか?本当に必須のものはありません:-)しかし、ターゲットシステムとOTPを使用すると、分散システムやホットコードをアップグレードする際に多くの手助けをします。 –
私は両方のことをしなければなりません。私のアプリケーションはすでにOTPルールに従って構築されていますが、私の動作プロセス(サーバー、fsm、スーパーバイザー)はすべてローカルです。私は、ホットアップグレードのためにリリースを使用すると思います。ディストリビューションに関しては、私はどのように作成するか、各ノードの設定ファイルをどこに置くべきかに関する適切な例は見つけられていません。いくつかのガイドラインと多分両方のことを達成するための方法の順序は私を非常に助けます。あなたの先鞭をつけてくれてありがとう、アダム。 – ar3tzu