Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

231
Vistas
Resiliencia y rendimiento de Spring WebFlux WebClient

Acabo de probar con un proyecto PoC de muestra algunas soluciones de bloqueo/no bloqueo en un escenario común simple.

Guión:

  • Hay un punto final de bloqueo de descanso que es bastante lento: cada solicitud tomó 200 ms.
  • Hay otra aplicación cliente que llama a este extremo lento.

He probado el cliente de arranque Spring (tomcat) actual (de bloqueo), Spring Boot 2.0 (netty) con WebFlux - WebClient, Ratpack y Lagom. En cada caso, he enfatizado la aplicación del cliente mediante un escenario simple de prueba Gatling (100-1000 usuarios / segundo).

He probado ratpack y lagom como servidores io de referencia sin bloqueo para comparar los resultados con el arranque de primavera (bloqueo y no bloqueo).

En todos los casos, tengo los resultados esperados, excepto la prueba Spring Boot 2.0. Funciona solo para niveles de carga pequeños, pero incluso así con alta latencia. Si el nivel de carga aumenta, se agota el tiempo de espera de todas las solicitudes.

Uso de cliente web:

 @RestController public class NonBlockingClientController { private WebClient client = WebClient.create("http://localhost:9000"); @GetMapping("/client") public Mono<String> getData() { return client.get() .uri("/routing") .accept(TEXT_PLAIN) .exchange() .then(response -> response.bodyToMono(String.class)); } }

No tengo idea de lo que sale mal o la versión actual de la instantánea solo funciona.

Todas las fuentes publicadas en https://github.com/rutkowskij/blocking-non-blocking-poc

  • servicio de bloqueo: extremo de bloqueo lento
  • cliente sin bloqueo - Spring Boot 2.0 y cliente basado en WebClient

Acabo de crear una aplicación Spring Boot simple usando spring-boot-starter-webflux con la versión 2.0.0.BUILD-SNAPSHOT que trae spring-webflux versión 5.0.0.BUILD-SNAPSHOT y lo mismo para Spring Core, Beans, Context, etc.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El problema ya no existe después del lanzamiento de 5.0 RC4. El problema estaba relacionado con la agrupación de conexiones en reactor-netty y reactor-core.

También probé con Spring Boot 2.0.0.M4: ahora todo se ve bien.

Detalles: http://jira.spring.io/browse/SPR-15584

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda