Question

De tous les articles que je l'ai lu jusqu'à présent sur Mochiweb, je l'ai entendu encore et encore que Mochiweb offre une très bonne évolutivité. Ma question est, comment exactement Mochiweb obtenir sa propriété d'évolutivité? Est-ce des propriétés d'évolutivité inhérentes Erlang ou ne Mochiweb ont un code supplémentaire qui permet explicitement à l'échelle bien? Autrement dit, si je devais écrire un simple serveur HTTP dans Erlang moi-même, avec un simple « boucle » (fonction récursive) aux demandes de poignée, serait-il le même niveau d'évolutivité en tant que serveur web simple construit en utilisant le cadre Mochiweb?

Mise à jour: Je ne suis pas l'intention de mettre en œuvre un serveur web supportant tous les Full Blown fonction possible. Mes exigences sont très spécifiques -. Pour traiter les données POST à ??partir d'un formulaire HTML avec des contrôles fixes

Était-ce utile?

La solution

MochiWeb est elle-même évolutive pas, pour autant que je le comprends. Il est un moyen rapide, petite bibliothèque de serveur qui peut gérer des milliers de requêtes par seconde. La façon dont il le fait qui n'a rien à voir avec « scalabilité » (en dehors de l'ajustement du nombre de mochiweb_acceptors qui écoutent à tout moment).

Qu'est-ce que vous obtenez avec MochiWeb est une bibliothèque de serveur Web solide et l'évolutivité de Erlang dispose. Si vous voulez exécuter un seul serveur MochiWeb, lorsqu'une demande arrive, vous pouvez délester encore le travail de traitement de cette demande à une machine que vous voulez, grâce à l'infrastructure de distribution de noeud Erlang et passer des messages pas cher. Si vous souhaitez exécuter plusieurs serveurs MochiWeb, vous pouvez les mettre derrière les fonctions de équilibreur de charge et l'utilisation Mnesia distribués aux données de session de synchronisation entre les machines.

Le point est, MochiWeb est petit et rapide (assez) . Erlang est l'outil de puissance d'évolutivité.


Si vous lancez votre propre solution de serveur, vous pouvez probablement atteindre ou battre l'efficacité MochiWeb et « évolutivité » hors de la boîte. Mais vous auriez à tout repenser qu'ils ont déjà pensé, et vous auriez à tester de combat vous-même.

Autres conseils

Probablement. : -)

Si vous deviez écrire un serveur Web qui traite chaque demande dans un processus séparé (fil de poids léger en Erlang), vous pouvez atteindre le même genre de « scalabilité » facilement. Bien sûr, l'ensemble des fonctionnalités serait différent, à moins que vous tout mettre en œuvre Mochiweb a.

Erlang a également une grande prise en charge intégrée pour la distribution de nombreuses machines, cela pourrait être possible d'utiliser pour gagner encore plus d'évolutivité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top