Spring Reactor Reactor
1. Présentation
Historiquement nous avions RxJava 1 et 2 pour faire de la programmation réactive.
Spring a décidé d’implémenter Reactor, sa propre version de 4e génération d’un moteur réactif afin de pouvoir utiliser au mieux les technologies actuelles.
Reactor est particulièrement bien adapté à Spring. Il peut facilement s’interfacer avec RxJava et avec l’équivalent du JDK9 : java.util.concurrent.Flow. Flow
Une application réactive est caractérisée par ces points :
-
Réactif : fournit des temps de réponse rapides et cohérents.
-
Résilient : reste réactif en cas de panne et doit récupérer.
-
Élastique : reste réactif et est capable de gérer diverses charges de travail.
-
Message Driven : communique à l’aide de messages asynchrones.
Les applications réactives ne sont pas plus rapides que les applications traditionnelles. Elles ont par contre un comportement beaucoup mieux maîtrisé et beaucoup plus prévisible quand le serveur vient à saturer. Bien que l’application Java soit saturée, le système hôte reste parfaitement accessible. Les applications sont plus intuitives à programmer et mieux structurées grâce à la programmation fonctionnelle.
Nous avons d’un côté le Publisher (producteur) qui produit un ou plusieurs éléments...