Pregunta

A partir de todos los artículos que he leído hasta ahora sobre Mochiweb, he escuchado esto una y otra vez que Mochiweb ofrece muy buena escalabilidad. Mi pregunta es, ¿cómo funciona exactamente Mochiweb obtener su propiedad escalabilidad? ¿Es de propiedades de escalabilidad inherentes de Erlang o no Mochiweb tienen ningún código adicional que permite explícitamente a escala bien? Dicho de otra manera, si tuviera que escribir un servidor HTTP simple en Erlang mismo, con un simple 'loop' (función recursiva) a las solicitudes de mango, tendría que tener el mismo nivel de escalabilidad como un simple servidor web construido utilizando el marco Mochiweb?

ACTUALIZACIÓN: No estoy planeando implementar un servidor web completo soplado apoyar todas las características posibles. Mis necesidades son muy específicas -. Para manejar datos POST de un formulario HTML con controles fijos

¿Fue útil?

Solución

MochiWeb no es escalable en sí, por lo que yo entiendo. Es una forma rápida, pequeña biblioteca de servidor que puede manejar miles de solicitudes por segundo. La forma en que lo hace que no tiene nada que ver con la "escalabilidad" (aparte de ajustar el número de mochiweb_acceptors que están escuchando en un momento dado).

Lo que se obtiene con MochiWeb es una biblioteca de servidor web sólida, y cuenta con la escalabilidad de Erlang. Si desea ejecutar un solo servidor MochiWeb, cuando llega una petición, todavía se puede descargar el trabajo de procesar esa petición a cualquier máquina que desee, gracias a la infraestructura distribuida nodo de Erlang y el paso de mensajes barato. Si desea ejecutar varios servidores MochiWeb, puede ponerlos tras las características distribuidas un equilibrador de carga y el uso de Mnesia a los datos de sesión de sincronización entre las máquinas.

El punto es, MochiWeb es pequeño y rápido (suficiente) . Erlang es la herramienta eléctrica escalabilidad.


Si sacas su propia solución de servidor, que probablemente podría cumplir o superar la eficiencia de MochiWeb y "escalabilidad" fuera de la caja. Pero entonces tendría que volver a pensar todo lo que ya han pensado, y que le tiene que probar la batalla por sí mismo.

Otros consejos

Probablemente. : -)

Si tuviera que escribir un servidor web que los mangos cada solicitud en un proceso separado (un hilo fino en Erlang) que podrían alcanzar el mismo tipo de "escalabilidad" fácilmente. Por supuesto, el conjunto de características sería diferente, a menos que implemente todo lo que tiene Mochiweb.

Erlang también tiene un gran soporte incorporado para su distribución entre muchas máquinas, esto podría ser posible utilizar para ganar aún más la escalabilidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top