Quelle bibliothèque NIO (Netty, Grizzly, kryonet, ...) pour une implémentation simple du serveur d'arrière-plan en Java?
notre frontal est un simple serveur Jetty (peut être remplacé plus tard par Tomcat). Grâce à 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 fait plusieurs types de tâches de maintenance. Alors que le backend processus habituellement t-il des tâches quand il est temps, maintenant et puis, l'interface doit réveiller le backend pour exécuter une certaine tâche en arrière-plan.
quel (N) bibliothèque IO serait idéal pour cette tâche? J'ai trouvé Netty, Grizzly, kryonet et RMI. Pour l'instant, je suis enclin à dire Netty, il semble simple d'utilisation et il est probablement très fiable.
est ce que vous avez de l'expérience dans ce genre de configurations? Quel serait votre choix?
merci!
4 réponses
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 que célèbre Java EE experts français, a fait beaucoup de poc de serveurs NIO dans le contexte d'un défi Français sponsorisé par VmWare (USI2011). Il s'agissait de construire une application simple quizz qui peut gérer une charge de 1 million d'utilisateurs connectés.
ils ont gagné ce challenge avec de bons résultats. Leur la mise en œuvre a été Netty + Gemfire et ils ont seulement remplacé le CachedThreadPool par un MemoryAwareThreadPool.
Netty semble offrir de belles performances, et est bien documentée.
ils ont aussi considéré comme adroit, inspiré par Tornado (Python / facebook) mais c'est encore un peu immature pour eux
Edit: voici le traduit lien fourni dans les commentaires
Ma préférence est Netty. C'est simple mais flexible. Très rapide et la communauté autour de Netty est génial.
l'entreprise pour laquelle je travaille évalue actuellement CoralReactor. C'est un logiciel commercial mais il a L'API la plus facile que J'ai jamais vu pour Java NIO. Mon opinion personnelle est que Netty rend les choses trop compliquées, surtout si vous voulez aller déchets-libre et simple fileté, qui sont une exigence pour de nombreuses entreprises de la finance, de la publicité et de l'industrie du jeu.
je les découplerais en utilisant JMS, j'ai juste quelques (ensemble de) files d'attente de contrôle votre arrière-plan est assis là à écouter et vous avez fini. Pas besoin d'écrire une api nio personnalisée ici.
un fournisseur d'échantillon est hornetq. Ce peut être exécuté comme un processus de jms courtier, il utilise Netty sous les couvertures.