J'essaie de comprendre Spring WebFlux. Les choses que j'ai trouvées jusqu'à présent sont réactives à la base, pas de Servlet API, pas de thread par requête, HTTP 2, server pushes, application/stream+json.
Mais quelle est la différence entre les appels asynchrones dans Spring MVC ? Je veux dire que dans Spring MVC, lorsque vous renvoyez Future, DefferedResult, etc., la logique du gestionnaire de requêtes (méthode du contrôleur) est exécutée dans un thread séparé, ce qui vous permet d'économiser les ressources du pool de threads pour la répartition des requêtes.
Pourriez-vous donc mettre en évidence les différences liées à cela ? Pourquoi WebFlux est-il meilleur ici ?
Merci beaucoup pour votre temps !
4 votes
La programmation réactive est axée sur la poussée et utilise un seul fil de distribution (ce qui est très efficace), alors que l'ancien modèle est toujours limité au nombre de fils de votre pool de fils.
0 votes
@M. Deinum Mais dans ce cas, je suis limité par la charge qu'un seul fil peut gérer. Pourquoi ne pas en utiliser plusieurs, et non pas un seul sur un système multicœur ?
1 votes
C'est un fil distributeur d'événements, c'est un modèle entièrement différent. Il ne fait que distribuer des événements (très rapidement) alors que l'autre modèle est toujours bloquant.
0 votes
@M. Deinum ok, c'est très intéressant, je suis sûr que je devrais y jeter un coup d'oeil, merci !
0 votes
@M. Deinum, veuillez partager le cycle de vie de la demande
0 votes
@M. Deinum, spring peut fonctionner avec servlet 3.1 sans webflux (completableFuture comme type de retour + tomcat 8.5+)