Programmation réactive avec Spring 5
15/03/2018
query
GET
scalabilité
verticale
scalabilité
horizontale
Existe-t-il d'autre moyens de scaler ?
on a remarqué qu'on perd des ressources lors des i/o
i/o c'est où ?
- lorsqu'on lit/écrit la req/res HTTP
- lorsqu'on execute/recoit la req/res BDD
- Au sein de la BDD, lorsqu'on lit les fichiers de données
Programmation seq
aggrégateur de résultats de recherche:
1. exécute les recherches auprès des systèmes externes les uns à la suite des autres
2. puis aggrège les résultats
coller diagramme sequence
Programmation parallèle
aggrégateur de résultats de recherche:
1. exécute les recherches auprès des systèmes externes en parallèle
2. puis aggrège les résultats
coller diagramme de séquence
Programmation asynchrone
document.getElementById("button").addEventListener("click", function(){
fetch('https://github.com/api/repositories')
.then(function(response) {
// use response
document.getElementById("demo").innerHTML = response.data;
})
});
exemples vertx et node
- le principe de vertx et node c'est que c'est de la prog non bloquante
ajouter diagramme de séquence ou illustratif
en java il existe quoi ?
- api nio
- netty
- servlet 3.0 async
3 frameworks
exemple reactor
- exemple de recherche gh gl dumb en spring reactor CLI
operateurs reactifs
map, flatmap, ...
Contretement ?
exemple appels successifs de xxx requests
exemple webflux
- webflux en mode @Controller
on request plusieurs api
on retourne direct les premiers results meme si la seconde api met du temps
merge
la version "router"
- même chose avec router
Attention à être reactif de bout en bout
- exemple si on l'est pas : RestTemplate + Flux.just(...)
back pressure
- Bullet One
- Bullet Two
- Bullet Three
WIP : Matinale Spring 5 : Programmation Reactive
By erwann thebault
WIP : Matinale Spring 5 : Programmation Reactive
- 939