Capítulo 3. Escalando

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Ejecutar copias redundantes de un servicio es importante al menos por dos razones.

La primera razón es para conseguir una alta disponibilidad. Considera que los procesos, y máquinas enteras, se bloquean ocasionalmente. Si sólo se está ejecutando una instancia de un productor y esa instancia se bloquea, los consumidores no podrán funcionar hasta que se haya relanzado el productor bloqueado. Con dos o más instancias productoras en ejecución, una sola instancia caída no impedirá necesariamente el funcionamiento de un consumidor.

Otra razón es que sólo hay cierto rendimiento que una instancia dada de Node.js puede manejar. Por ejemplo, dependiendo del hardware, el servicio "Hola Mundo" más básico de Node.js puede tener un rendimiento de unas 40.000 peticiones por segundo (r/s). Una vez que una aplicación comienza a serializar y deserializar cargas útiles o a realizar otras tareas que requieran un uso intensivo de la CPU, ese rendimiento se reducirá en varios órdenes de magnitud. Descargar el trabajo en procesos adicionales ayuda a evitar que un único proceso sevea desbordado.

Hay algunas herramientas disponibles para dividir el trabajo. " El módulo Cluster" examina un módulo incorporado que facilita la ejecución de copias redundantes del código de la aplicación en el mismo servidor. "Proxies inversos con HAProxy" ejecuta varias copias redundantes ...

Get Sistemas distribuidos con Node.js now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.