Introduction Reactor WebFlux
Ce chapitre présente brièvement les nouveautés réactives de Spring 5. Les applications réactives avec Spring sont traitées plus en détail dans l’ouvrage "Java Spring - Construisez vos applications réactives avec une architecture micro-services en environnement Java EE" aux Éditions ENI.
L’objectif de la programmation réactive est de simplifier l’écriture d’applications asynchrones qui, au lieu d’utiliser le mécanisme classique d’un volumineux pool de threads bloquants, utilise une boucle et un nombre minimum de threads grâce à un moteur basé sur un framework NIO comme Netty. Netty
Nous plaçons dans une file d’attente des traitements rapides à effectuer, et ils se font au fil de l’eau. Il devient alors possible de modéliser ces traitements sous la forme de flux et de propagations de changements. Nous pouvons gérer des flux statiques avec des tableaux ou dynamiques avec des émetteurs et récepteurs d’événements comme dans le design pattern observateur.
Dans un contexte de serveur d’un cluster élastique, ce type de traitement "sériel" permet de savoir si la charge sur un serveur est en adéquation avec la puissance du cluster via la backpressure qui mesure le volume du flux acceptable en entrée du serveur. En cas de dépassement d’un seuil nous pouvons augmenter...