2016-04-19 5 views
0

多くのノードにアプリケーションを配布し、それぞれのプロセスを作成すると、プロセスは作成されたすべてのノードとは別になります。プロセスはすべてのノードで作成されていませんか?

これは配信のケースですか?ノード間で複製されないプロセスですか?

実際のマシンを表す長い実行プロセスがある場合、起動時にこのプロセスを初期化しなければならないとしたら、システムが停止したときに何が起きますか?

+0

ご質問の一部があまりにも曖昧すぎて対処できません。たとえば、「システム」とは何ですか? – aronisstav

答えて

2

Erlangでプロセスを産出するときは、どこに産んだのかを暗黙のうちに決めるのはあなた次第です。デフォルト選択は、spawn呼び出しを実行するプロセスのノードです。

明示的に追加しない限り、「複製」はありません。

+0

私は、2つのノードでプロセスを生成する問題を見分けることができます。長時間実行されているプロセスはどうやって処理しますか?ノードがクラッシュしたときにシステムにデータを再投入するだけで、データを再生成することができます。または別のノードにそれらを生成しようとしています – homerjay

+3

それはあなたのアプリケーションに完全に依存します。一部のアプリケーションでは、新しいプロセスを起動して状態を再構築するだけで問題ありません。アプリケーションによっては、状態を他のプロセス(おそらく他のノード)に複製する必要があります。しかし、さまざまなシナリオで必要性が異なるため、Erlangはこれを選択することはできません。 – dvaergiller

関連する問題