Estoy trabajando en un sitio web que muestra algunos datos de DB que cambian con frecuencia (Estado de una cola y una conversación de chat). Mi configuración actual es Apache/PHP/MySQL. Naturalmente, me gustaría evitar sondear el servidor cada x segundos ya que esto no se escala bien. Me gustaría revertir el largo sondeo ajax, sin embargo, he leído que Apache no funciona bien con esto, ya que rápidamente se queda sin hilos de trabajo. Hay muchos otros servidores web que solucionan este problema: nginx, tornado, etc. Sin embargo, mi problema es que PHP es el ÚNICO lenguaje de scripting del lado del servidor que conozco. También ya he escrito algunos scripts PHP, así que me gustaría guardarlos si puedo. Estoy de acuerdo con el cambio de servidor, siempre y cuando aún pueda usar PHP.¿Es php escalable con una encuesta larga ajax inversa?
Pero después de investigar un poco más, he leído que la gente dice que PHP (PHP-FPM?) También crea un proceso para cada solicitud, lo que significa que si tengo cientos/miles de conexiones abiertas, habrá cientos/miles de procesos, que también serán un problema.
¿Puedo concluir que no hay buenas maneras escalables de hacer sitios web de larga duración con PHP? ¿Debo abandonar PHP y aprender otro lenguaje de scripting de servidor? Puedo continuar desarrollando encuestas largas utilizando mi configuración actual (Apache/PHP) por ahora, pero no quiero que la elección del lenguaje de scripts represente ninguna limitación en la escalabilidad de mi sistema cuando implemente. ¿Entonces qué debo hacer? No tengo mucha experiencia con la programación web, así que si algún gurú me puede dar algunos consejos, ¡te lo agradecería! ¡Gracias!
No he hecho esto por mi cuenta, pero ¿sería una opción utilizar js sockets? quizás usando node.js también. El soporte nativo para websockets en los navegadores se está ejecutando iproving pero supongo que el plugin jquery maneja eso? –
Realmente no estoy considerando websocket ya que no es compatible con todos los principales navegadores. En realidad, he investigado node.js, pero por lo que escuché, todavía es relativamente nuevo, por lo que el soporte de framework es más limitado. Actualmente estoy considerando Django, lo que significa que tengo que retomar Python. Escuché cosas buenas sobre el framework, pero aún prefiero quedarme con php, si hay alguna forma de evitar el éxito en el rendimiento. – pinghsien422
definitivamente reconsiderar node.js - una simple solicitud ajax al puerto del servidor en el que se ejecuta node.js podría ser el truco. –