sueldo - ¿Qué biblioteca NIO(Netty, Grizzly, kryonet,...) para la implementación simple del servidor back-end en Java?
full stack developer (4)
Intente traducir este documento que responda a su pregunta. http://blog.xebia.fr/2011/11/09/java-nio-et-framework-web-haute-performance/
Esta sociedad, como expertos franceses famosos de Java EE, realizó una gran cantidad de servidores NIO en el contexto de un desafío francés patrocinado por VmWare (USI2011). Se trataba de crear una aplicación de prueba simple que puede manejar una carga de 1 millón de usuarios conectados.
Ellos ganaron ese desafío con grandes resultados. Su implementación fue Netty + Gemfire y solo reemplazaron el CachedThreadPool por un MemoryAwareThreadPool.
Netty parece ofrecer grandes actuaciones, y está bien documentado.
También lo consideraron Deft, inspirado en Tornado (python / facebook) pero todavía es un poco inmaduro para ellos.
Edición: aquí está el enlace traducido en los comentarios.
Nuestro frontend es el servidor Jetty simple (que podría ser reemplazado con Tomcat más adelante). A través de servlets, estamos proporcionando una API HTTP pública (más o menos REST) para exponer la funcionalidad de nuestro producto.
En el backend, tenemos un proceso Java que realiza varios tipos de tareas de mantenimiento. Mientras que el proceso de back-end suele tener sus propias tareas cuando es el momento, de vez en cuando, el front-end necesita activar el back-end para ejecutar una determinada tarea en segundo plano.
¿Qué biblioteca (N) IO sería ideal para esta tarea? Encontré a Netty, Grizzly, kryonet y RMI simple. Por ahora, me inclino a decir Netty, parece fácil de usar y probablemente es muy confiable.
¿Alguno de ustedes tiene experiencia en este tipo de configuraciones? ¿Cuál sería tu elección?
¡Gracias!
La compañía para la que trabajo actualmente está evaluando CoralReactor . Es un software comercial pero tiene la API más sencilla que he visto nunca para Java NIO. Mi opinión personal es que Netty hace las cosas demasiado complicadas, especialmente si desea ir sin basura y de un solo hilo, que son un requisito para muchas compañías de la industria de las finanzas, la publicidad y los juegos.
Los desacoplaría mediante el uso de JMS, solo tengo algunas (conjunto de) colas de control en las que tu backend está sentado escuchando y listo. No hay necesidad de escribir un nio api personalizado aquí.
Un proveedor de muestra es hornetq. Esto también se puede ejecutar como un agente jms en proceso, usa Netty bajo las coberturas.
Mi preferencia es Netty. Es simple pero flexible. Muy rápido y la comunidad alrededor de Netty es impresionante.