Cadre de repos non bloquant à base de Netty

je travaille sur une application RESTfull qui nécessite une grande évolutivité. Je considère Netty cadres basés pour les applications RESTfull. J'ai passé en revue certaines des options disponibles et essayé d'obtenir ce qu'ils peuvent offrir comme une implémentation non-bloquante. Voici mes conclusions:

  1. repos.li -- > encore en phase expérimentale pour les implémentations NIO basées sur la technologie. Donc, pas de prêt de production.
  2. RESTEasy -- > Standard JBoss project qui supporte Netty 4.x. Mais, au lieu d'une implémentation NIO basée sur la pile entière, RESTEasy est un échange tampon entre Netty et RESTEasy. Il ne prend pas les avantages de Netty. Par conséquent, l'évolutivité n'est pas aussi élevé que prévu d'un Netty.
  3. Netty-composante http -- > une autre option est L'intégration de Camel D'Apache tout en utilisant la composante de Netty-http comme point final pour acheminer des requêtes vers des services exposés dans from of beans. Je pense que C'est comme RESTEasy, seul le composant Netty-http utilise les capacités NIO basées sur Netty et le reste du système utiliserait l'ancien IO. Je ne pense pas que je pourrais aider beaucoup à gagner scalabiltiy.
  4. RESTExpress --> Il prétend être Netty mécanisme de Détente de l'application. Mais, ni il a une communauté décente ni il peut être fait confiance (parce que c'est très nouveau) pour l'application d'entreprise qui exige un haut degré de sécurité.

avant d'avoir les résultats ci-dessus, je je voulais utiliser un cadre prêt à l'emploi et faire le travail plus rapidement.

je sais que c'est une question d'opinion. Mais j'ai quand même sérieusement besoin d'aide pour choisir le bon cadre pour ma demande. Si, dans le cas, il n'y a pas de cadre de repos basé sur les Netty: serait-il sage d'opter pour la plomberie bas niveau Code De NIO basé sur les Netty dans ma demande? Toute aide appréciée. Merci à l'avance.

20
demandé sur ynh 2013-11-04 01:15:14

6 réponses

si vous voulez vraiment non-blocage vous devez faire non-blocage à partir de la base et avoir clients de repos approprié . Sinon, comme indiqué dans mon commentaire la différence de performance sera négligeable et dans de nombreux cas pire pour NIO (Netty avec partage de thread).

Il y a seulement deux bibliothèques que je sais faire sans blocage à partir du sol Vert.x et un peu Finagle (il manque d'autres choses comme l'accès aux données non bloquant).

vous devriez également connaître Tomcat et d'autres conteneurs servlet qui peuvent fonctionner avec JAX-RS support NIO. Le problème est que même si NIO est supporté, il n'en restera qu'un seul thread par requête. Seulement Jouer, Finagle, Vert.x et Netty pure (indépendamment de NIO) supportent un modèle de threading partagé différent et ont donc différents mécanismes pour faire concurrence.

11
répondu Adam Gent 2017-05-23 11:46:13

Voici la liste des microframeworks que je connais pour les applications de repos:

s'il vous Plaît n'hésitez pas à commenter pour la réponse, je vais mettre à jour la réponse à ajouter de plus.

6
répondu trustin 2013-11-05 07:35:46

avez-vous regardé Play ?

il semble que vous êtes enclin à utiliser Netty, mais si vous êtes prêt à regarder autour d'un très simple Grizzly + Jersey installation sera probablement assez bien. Heck, un simple Glassfish 4.0 JAX-RS app peut fonctionner aussi bien.

3
répondu user2954240 2013-11-04 22:09:15

vous pouvez jeter un oeil à AsyncRestTemplate dans le cadre de printemps 4.2.5.PUBLIER. Il peut être utilisé sur le dessus de Netty.

Note: par défaut Asyncrestemplate s'appuie sur les installations JDK standard pour établir des connexions HTTP. Vous pouvez basculer pour utiliser une bibliothèque HTTP différente comme Apache HttpComponents, Netty, et OkHttp en utilisant un constructeur acceptant un AsyncClientHttpRequestFactory.

0
répondu Jingguo Yao 2016-03-16 14:13:56

Il ya un autre cadre qui utilise Netty et RxJava, il est appelé datamill

si vous êtes intéressé à construire des applications web en utilisant un style réactif fonctionnel, alors devrait envisager.

0
répondu Kishore Karunakaran 2016-11-22 03:46:24

printemps 5 est livré avec un cadre web réactif appelé WebFlux. Vous pouvez choisir parmi plusieurs serveurs comme Netty ou Undrow. Un WebClient réactif non-bloquant a également été ajouté au printemps et il a également le soutien pour Mongo réactif, Redis et Cassandra (je suppose que plus est à venir bientôt).

Printemps de Démarrage, les "opinions vue du Printemps', sera également obtenir une nouvelle version (2.0) basé sur le Ressort 5. Au moment de l'écriture, il est prévu d'être sorti en février.

plus d'information sur la pile réactive du ressort: https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html

0
répondu Yossarian 2018-01-23 20:53:29