8
votes

Exécuter plusieurs applications erlang. Un ou plusieurs VMS?

Je veux exécuter plusieurs applications Erlang, une étant Riak et une autre étant un serveur Web. Devrais-je les exécuter dans la même chose de distincts Erlang VMS et pourquoi?


0 commentaires

4 Réponses :


5
votes

S'ils ne doivent rien faire avec l'autre: Non. Vous devrez peut-être redémarrer la machine virtuelle pour l'une des applications, ce qui entraînerait un temps d'arrêt pour les deux.


3 commentaires

Je pensais que l'erlang vm n'est pas tombé en panne?


Une raison d'un redémarrage est de modifier une option VM. Vous ne pouvez pas faire cela sans redémarrer. En outre: dans ce cas, un basculement pourrait avoir lieu, l'application n'est donc pas en panne, un seul noeud. :RÉ


La mise à niveau vers une version plus récente Erlang VM a également besoin d'un redémarrage.



5
votes

On appelle "le partage du destin", une décision de conception courante. Plus les sous-systèmes partagent des ressources communes, plus leur "destin" est attaché ensemble. En cas de dysfonctionnement / échec, plus le «sort du destin» -> la probabilité accrue de l'échec systématique.

si vous pouvez avoir chacun dans des ordinateurs virtuels séparés, alors je dirais que c'est mieux de cette façon.


2 commentaires

Cela n'implique-t-il pas que je devrais exécuter tous mes processus de serveur dans une machine virtuelle distincte? :)


@zed: Ce n'est pas exactement ce que cela signifie (remarquez le "si" dans la lettre majuscule). Il y a Toujours un SPOF (unique de défaillance) couché quelque part - il s'agit de gérer le système pour un niveau de disponibilité acceptable pour un point de coût donné. Mais vous saviez tout ça, je sais que vous vous tirez simplement la jambe à ce stade! À votre santé.



6
votes

Bien que beaucoup recommandent découplage ces sous-systèmes, je prendrais l'approche opposée. Erlang a une stratégie intégrée pour exécuter de nombreux Applications sur le même libération . Si vos applications se parlent directement, cela pourrait être logique pour vous de les regrouper dans une libération. Cela fera des appels entre les applications plus rapidement. Certains diront que toutes vos applications partagent maintenant le même sort si vous devez prendre le système pour une mise à niveau que seule l'une des applications a besoin. Ceci est un point discutable avec Erlang où vous distribuez vos applications sur de nombreux nœuds. La plupart des mises à niveau peuvent également être effectuées avec Chargement à chaud Chargement .


0 commentaires

-1
votes

En utilisant des VMS séparés, vous perdez beaucoup d'avantages erlang.


1 commentaires

Quels avantages sont perdus?