Comprenda la base reactiva
Descubra por qué Spring Cloud Gateway se basa en una pila reactiva no bloqueante y qué implica esto para el flujo de las solicitudes a través de la puerta de enlace.
Comprenda la base reactiva es una lección gratuita de API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway), y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
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.
Preguntas frecuentes
¿La lección «Comprenda la base reactiva» es gratis?
Sí — el texto completo de «Comprenda la base reactiva» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway), actualiza a CoddyKit PRO. El curso de API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) incluye 4 lecciones en total.
¿Qué aprenderé en «Comprenda la base reactiva»?
Descubra por qué Spring Cloud Gateway se basa en una pila reactiva no bloqueante y qué implica esto para el flujo de las solicitudes a través de la puerta de enlace. Practicas API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway)?
No se requiere experiencia previa. API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Comprenda la base reactiva»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway)?
Sí. Cada lección de API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Gateway frente a microservicios tradicionales
- Configuración de un proyecto de Gateway básico
- Definición de rutas y predicados
- Comprenda la base reactiva