【发布时间】:2018-03-18 06:57:42
【问题描述】:
我正在尝试了解 Spring WebFlux。到目前为止,我发现的核心是响应式的,没有 Servlet API,每个请求没有线程,HTTP 2,服务器推送,应用程序/流 + json。
但是 Spring MVC 中的异步调用有什么区别呢?我的意思是在 Spring MVC 中,当您返回 Future、DefferedResult 等时,您会在单独的线程中执行的请求处理程序(控制器方法)中获得逻辑,因此您也可以从节省线程池资源以调度请求中受益。
那么您能否强调一下与此相关的差异?为什么 WebFlux 在这里更好?
非常感谢您的宝贵时间!
【问题讨论】:
-
响应式编程是推送驱动的,使用单个调度程序线程(效率很高),而旧模型仍然受限于线程池中的线程数。
-
@M. Deinum 但在这种情况下,我受限于一个线程可以处理的负载。为什么不使用其中的几个,而不仅仅是一个具有多核系统的?
-
它是一个事件调度线程,它是一个完全不同的模型。它只调度事件(非常快),而另一个模型仍然阻塞。
-
@M. Deinum 好的,这很有趣,我确定我应该看看它,谢谢!
-
@M. Deinum,请分享请求生命周期
标签: java spring spring-mvc spring-webflux