Este proyecto busca comparar diferentes implementaciones de un servidor que consume una API HTTP externa (gateway):
- Spring Web
- Spring Webflux con un cliente no bloqueante (WebClient)
- Spring Webflux con un cliente bloqueante (RestTemplate)

Con los valores de ejemplo, se estresa la aplicación con 200 requests simultáneas y la API externa tarda 2 segundos. Podés cambiar los números y ver qué pasa :D
-
Abrí esta carpeta con IntelliJ IDEA
-
Corré las aplicaciones (los links te llevan a cada clase main)
- La API "externa" lenta: slow-api
- El servidor Spring Web: web-server
- El servidor Spring WebFlux: webflux-server
-
Corré un JMeter y abrí el plan de pruebas en
jmeter-tests/alltests.jmx. Si no tenés JMeter descargalo de acá. -
Poné play, poné play te dije!!!!!
-
Cada "Aggregate Report" indica los resultados. Se ve algo así:

Para cambiar la cantidad de peticiones que se hacen en la prueba, configurar cada Thread Group (cada engranaje en JMeter)
Para cambiar el tiempo de tardanza de el servicio "externo", cambiar el tiempo del Thread.sleep en la clase principal de slow-api
(OkHttp3 y RestTemplate se comportan muy parecido). Los 200 requests se disparan en simultáneo