Por lo general, significa que muchos sockets (probablemente sockets TCP / IP ) están conectados al mismo tiempo.
Por ejemplo, un servidor HTTP se desconecta después de que el cliente haya recibido todos los archivos que necesita o después de que la canalización haya excedido su número máximo de solicitudes (por cierto, los WebSockets son una excepción a esto). Esto significa que si tiene, digamos, 1 millón de usuarios en HTTP, solo puede tener 80,000 conexiones simultáneas en cualquier momento. Si, por otro lado, tiene 1 millón de usuarios que usan WebSockets, tendrá 1 millón de conexiones simultáneas.
Al diseñar un sistema, es importante saber cuántas conexiones concurrentes pretendemos servir. Esto se debe a que se utilizan diferentes técnicas para obtener una escala vertical y horizontal. Un servidor que está diseñado para servir solo 50 conexiones concurrentes generalmente no usará las mismas técnicas que un servidor diseñado para servir 1 millón de conexiones concurrentes.
- ¿Por qué el software de Amadeus tiene una gran demanda entre las agencias de Arabia Saudita, Dubai y otros países del Medio Oriente?
- ¿Qué sitios web enseñan JSP, Servlet, MVC, DAO y Database?
- ¿Cuál es el mejor lenguaje para las secuencias de comandos del lado del servidor?
- ¿Existe una manera fácil de proteger el código PHP?
- WHMCS en subdominio o subcarpeta?
Supongamos que necesita solo 50 conexiones simultáneas, por ejemplo, podría optar por utilizar procesos o subprocesos separados para cada conexión. Si, por otro lado, necesita manejar más de 100. Probablemente deba cambiar a algo como el método select (). Si necesita millones, se vuelve más complicado porque necesita tolerancia a fallas. No desea, por ejemplo, un solo error para eliminar todo el sistema, por lo que debe encontrar formas de aislar sus conexiones. Aparte de mirarlo desde un punto de vista de rendimiento, necesita usar cosas como kqueue () y epoll () para obtener este tipo de escala vertical (busque el problema C10K en google). Para la tolerancia a fallas, puede obtener esto agregando más servidores y difundiendo el trabajo y buscando tecnologías que se especialicen en tolerancia a fallas y aislamiento, como Erlang y Elixir.