Comprendre les fondations réactives
Découvrez pourquoi Spring Cloud Gateway repose sur une pile réactive non bloquante et ce que cela implique pour le cheminement des requêtes dans la passerelle.
Comprendre les fondations réactives est une leçon API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway), et ta progression se synchronise sur le web et l'application CoddyKit. Le cours API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
A Different Kind of Server
Unlike a traditional Spring MVC app, Spring Cloud Gateway runs on Spring WebFlux and Project Reactor. It uses a non-blocking, event-loop server (Netty) instead of one thread per request.
This design lets the gateway handle thousands of concurrent connections with very few threads.
Blocking vs Non-Blocking
In a blocking model, a thread waits idle while a backend responds. In a non-blocking model, the thread is freed and notified later when data is ready.
- Blocking: 1 thread tied up per in-flight request
- Non-blocking: a handful of threads serve many requests
Mono and Flux
Reactor's core types describe asynchronous results:
Mono<T>emits 0 or 1 valueFlux<T>emits 0 to many values
The gateway returns a Mono<Void> when a request finishes processing.
Mono<String> name = Mono.just("gateway");
Flux<Integer> nums = Flux.just(1, 2, 3);Nothing Happens Until Subscribe
Reactive streams are lazy. A Mono or Flux does nothing until something subscribes. In the gateway, the framework subscribes for you when a request arrives.
Mono<String> greeting = Mono.fromSupplier(() -> "hello");
// runs only when subscribed:
greeting.subscribe(System.out::println);The Reactive Web Stack
The starter spring-cloud-starter-gateway pulls in WebFlux automatically. You must not add spring-boot-starter-web (the servlet/MVC stack) or startup will fail with a conflict.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>The ServerWebExchange
Every request is wrapped in a ServerWebExchange, which holds the request and response. Filters read and mutate this exchange as the request flows through.
// inside a filter
ServerHttpRequest request = exchange.getRequest();
String path = request.getURI().getPath();The Filter Chain
A request passes through an ordered chain. Each filter can act, then call chain.filter(exchange) to continue, and run more logic after the downstream response returns.
return chain.filter(exchange)
.then(Mono.fromRunnable(() ->
System.out.println("response sent")));Why Reactive Fits a Gateway
A gateway spends most of its time waiting on the network for upstream services. Non-blocking I/O is ideal here: threads are not wasted waiting, so the gateway stays responsive under heavy load.
Avoid Blocking Calls
Calling a blocking JDBC driver or Thread.sleep inside a filter stalls the event loop and hurts every request. If you must block, offload to a bounded scheduler.
Mono.fromCallable(() -> blockingLookup())
.subscribeOn(Schedulers.boundedElastic());Operators Transform Streams
Operators like map, flatMap, and filter reshape the data flowing through a stream without blocking.
Flux.just(1, 2, 3, 4)
.filter(n -> n % 2 == 0)
.map(n -> n * 10)
.subscribe(System.out::println); // 20, 40Mental Model
Think of the gateway as a pipeline of asynchronous steps. A request enters, flows through predicates and filters, is forwarded reactively, and the response streams back through the same chain in reverse.
Quick Check
What underlying web stack does Spring Cloud Gateway run on?
Recap
You now understand the reactive foundation of the gateway:
- Non-blocking I/O on Netty handles high concurrency
MonoandFluxmodel async results and are lazy- Each request is a
ServerWebExchangeflowing through a filter chain - Never block the event loop
This mindset underpins routes, predicates, and filters you build next.
Apprends API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 12
- Leçons
- 48
Questions Fréquemment Posées
La leçon « Comprendre les fondations réactives » est-elle gratuite ?
Oui — le texte complet de « Comprendre les fondations réactives » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway), passe à CoddyKit PRO. Le cours API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Comprendre les fondations réactives » ?
Découvrez pourquoi Spring Cloud Gateway repose sur une pile réactive non bloquante et ce que cela implique pour le cheminement des requêtes dans la passerelle. Tu pratiques API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) ?
Aucune expérience préalable n'est requise. API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Comprendre les fondations réactives » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) ?
Oui. Chaque leçon API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Passerelle ou microservices traditionnels
- Créer un projet de passerelle de base
- Définir des routes et des prédicats
- Comprendre les fondations réactives