Spring Webflux vs Async



我对Webflux与spring @Async有什么不同有点困惑。有些页面说spring Async模型是阻塞的,而Webflux是无阻塞的。其他页面表明,springasync确实是非阻塞的。我认为异步不能阻塞,为什么我要使用它,如果它是?与异步相比,使用webflux有什么好处?

差异

  • Spring异步I/O模型在与客户端通信期间被阻塞。这可能会导致慢速客户机的性能问题。另一方面,Spring WebFlux提供了一个非阻塞的I/O模型。
  • 读取请求体或请求部分在Spring Async中是阻塞的,而在Spring WebFlux中是非阻塞的。
  • 在Spring Async中,过滤器和servlet是同步工作的,但是Spring WebFlux支持完全异步通信。

是否所有这些都导致我们使用Spring WebFlux?好吧,Spring Async甚至Spring MVC可能是许多项目的正确答案,这取决于期望的负载可伸缩性或系统的可用性。

关于可伸缩性,Spring Async给了我们比同步Spring MVC实现更好的结果。Spring WebFlux,由于它的响应性,为我们提供了弹性和更高的可用性。

来源:Baeldung

Baeldung网站提供了很多关于Spring的信息,我建议你经常使用它,它通常有你想要的

最新更新