Quelle bibliothèque NIO (Netty, Grizzly, kryonet,…) pour l’implémentation simple des serveurs principaux en Java?

Notre interface est un simple serveur Jetty (éventuellement remplacé ultérieurement par Tomcat). Grâce aux servlets, nous fournissons une API HTTP publique (plus ou moins RESTful) pour exposer les fonctionnalités de notre produit.

Dans le backend, nous avons un processus Java qui effectue plusieurs types de tâches de maintenance. Alors que le processus backend le fait généralement par ses propres tâches quand il est temps, de temps en temps, le client doit réveiller le backend pour exécuter une certaine tâche en arrière-plan.

Quelle bibliothèque (N) IO serait idéale pour cette tâche? J’ai trouvé Netty, Grizzly, Kryonet et RMI. Pour le moment, je suis enclin à dire que Netty, cela semble simple à utiliser et probablement très fiable.

Est-ce que l’un de vous a de l’expérience dans ce type d’installation? Quel serait votre choix?

Merci!

Essayez de traduire ce document qui répond à votre question. http://blog.xebia.fr/2011/11/09/java-nio-et-framework-web-haute-performance/

Cette société, en tant qu’experts français renommés de Java EE, a fait beaucoup de serveurs NIO dans le cadre d’un challenge français sponsorisé par VmWare (USI2011). Il s’agissait de créer une application de jeu-questionnaire simple capable de gérer un million d’utilisateurs connectés.

Ils ont remporté ce défi avec d’excellents résultats. Leur implémentation était Netty + Gemfire et ils ont seulement remplacé CachedThreadPool par un MemoryAwareThreadPool.

Netty semble offrir d’excellentes performances et est bien documentée.

Ils ont également considéré Deft, inspiré par Tornado (python / facebook), mais c’est encore un peu immature pour eux.

Edit: voici le lien traduit fourni dans les commentaires

Ma préférence est Netty. C’est simple mais flexible. Très vite, la communauté autour de Netty est géniale.

La société pour laquelle je travaille évalue actuellement CoralReactor . C’est un logiciel commercial mais il possède l’API la plus simple que j’ai jamais vue pour Java NIO. Mon opinion personnelle est que Netty rend les choses trop compliquées, surtout si vous voulez aller sans déchets et sans thread, ce qui est une exigence pour de nombreuses entresockets des secteurs de la finance, de la publicité et des jeux.

Je les découplerais à l’aide de JMS, il suffit d’avoir quelques files de contrôle sur lesquelles votre système d’alarme est à l’écoute et vous avez terminé. Pas besoin d’écrire un ni api personnalisé ici.

Hornetq est un exemple de fournisseur. Cela peut également être exécuté en tant que courtier jms en cours de traitement, il utilise Netty sous les couvertures.