Hace un par de semanas acudí a la siguiente charla en la que la gente de linkedin presentaba su solución de alto rendimiento para procesar información. Fue toda una alegría ver que muchos de los conceptos explicados eran temas que en zylk.net llevamos ya algún tiempo aplicando.
Así que voy a escribir una serie de artículos con las técnicas más básicas para conseguir un rendimiento alto en el desarrollo de nuevos servicios, basandonos en estos conceptos y productos. La idea de diseñar de esta manera las aplicaciones persigue los siguientes objetivos
A continuación muestro una imagen de lo que podría ser un servicio de este estilo a nivel general
Donde podemos ver la estructura a tres capas de siempre pero en la que las siguientes técnicas nos permiten mejorar el rendimiento y la esclabildiad del sistema
En un sistema clasico la petición iría del cliente al frontal web, del frontal web al servidor de aplicaciones y del servidor de aplicaciones al backend...y la respuesta realizaría el camino inverso. Todo ello de manera síncrona. Por lo tanto la pendiente que define la recta que representa el numero de peticiones por segundo respecto al numero de usuarios concurrentes depende de la velocidad de una petición unitaria (cuanto más rápida la petición, más pendiente y más peticiones por segundo podrá resolver el sistema, si lo consideramos como un sistema ideal que no tiene límites).
En cambio en un sistema desacoplado y desatendido el número de peticiones que el sistema puede responder no depende de la velocidad de respuesta de una petición unitaria...
Por tanto lo que nos interesa es
La idea es escribir tres artículos explicando (desde el punto de vista de un desarrollador java) los siguientes puntos de la arquitecutra
Y ahora un pequeño detalle técnico (dos pasos y dos lineas de configuración) para el apache 2.4.7, necesario para que el frontal pueda hacer de proxy a las peticiones websocket