Domanda

Da tutti gli articoli che ho letto finora circa Mochiweb, ho sentito questo più e più volte che Mochiweb fornisce molto buona scalabilità. La mia domanda è: come fa esattamente Mochiweb ottiene la sua proprietà di scalabilità? E 'dalle proprietà intrinseche di scalabilità di Erlang o non Mochiweb avere alcun codice aggiuntivo che consente esplicitamente di scala bene? In altre parole, se dovessi scrivere un semplice server HTTP in Erlang me stesso, con un semplice 'loop' (funzione ricorsiva) per gestire le richieste, sarebbe avere lo stesso livello di scalabilità come un semplice web server integrato utilizzando il framework Mochiweb?

UPDATE: Non sto pensando di implementare un completo web-server soffiato sostenere ogni caratteristica possibile. I miei requisiti sono molto specifici -. Per gestire i dati POST da un form HTML con i controlli fissi

È stato utile?

Soluzione

MochiWeb non è scalabile per sé, per quanto ho capito. Si tratta di un veloce, una biblioteca molto piccolo server in grado di gestire migliaia di richieste al secondo. Il modo in cui si fa che non ha nulla a che fare con "scalabilità" (a parte la regolazione del numero di mochiweb_acceptors che stanno ascoltando in un dato momento).

Quello che si ottiene con MochiWeb è una libreria web server solido, e la scalabilità di Erlang caratteristiche. Se si desidera eseguire un singolo server MochiWeb, quando arriva una richiesta, è ancora possibile scaricare il lavoro di elaborazione che la richiesta a qualsiasi macchina che si desidera, grazie alle infrastrutture del nodo distribuita di Erlang e il messaggio a buon mercato che passa. Se si desidera eseguire più server MochiWeb, è possibile metterli dietro le caratteristiche distribuito un bilanciatore di carico e l'uso di mnesia ai dati della sessione di sincronizzazione tra macchine.

Il punto è, MochiWeb è piccolo e veloce (abbastanza) . Erlang è lo strumento di potere scalabilità.


Se si tira la soluzione proprio server, probabilmente si potrebbe soddisfare o battere l'efficienza di MochiWeb e "scalabilità" out of the box. Ma allora si sarebbe avere a tutto ripensamento che hanno già pensato, e che ci si deve testare la battaglia da soli.

Altri suggerimenti

Probabilmente. : -)

Se si dovesse scrivere un web server che gestisce ogni richiesta in un processo separato (filo leggero in Erlang) si potrebbero raggiungere lo stesso tipo di "scalabilità" facilmente. Naturalmente il set di funzionalità sarebbe stato diverso, a meno che non si implementa tutto Mochiweb ha.

Erlang ha anche un grande supporto incorporato per la distribuzione tra molte macchine, questo potrebbe essere possibile utilizzare per guadagnare ancora più scalabilità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top