API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) · Lezione

Comprendere le basi reactive

Scopra perché Spring Cloud Gateway è basato su uno stack reactive non bloccante e cosa comporta per il flusso delle richieste attraverso il gateway.

Lezione 4 di 413 passaggi

Comprendere le basi reactive è una lezione API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway), e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

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 value
  • Flux<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, 40

Mental 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
  • Mono and Flux model async results and are lazy
  • Each request is a ServerWebExchange flowing through a filter chain
  • Never block the event loop

This mindset underpins routes, predicates, and filters you build next.

Gratis per iniziare

Impara API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
12
Lezioni
48

Domande Frequenti

La lezione «Comprendere le basi reactive» è gratuita?

Sì — il testo completo di «Comprendere le basi reactive» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway), passa a CoddyKit PRO. Il corso API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) include 4 lezioni in totale.

Cosa imparerò in «Comprendere le basi reactive»?

Scopra perché Spring Cloud Gateway è basato su uno stack reactive non bloccante e cosa comporta per il flusso delle richieste attraverso il gateway. Eserciti API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway)?

Non è richiesta alcuna esperienza precedente. API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Comprendere le basi reactive»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway)?

Sì. Ogni lezione API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Gateway e microservizi tradizionali
  2. Configurazione di un progetto gateway di base
  3. Definizione di route e predicati
  4. Comprendere le basi reactive
← Torna a API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway)