【數學】尤拉函式的計算公式及其證明
阿新 • • 發佈:2021-08-23
一、什麼是 Spring WebFlux
Spring MVC 構建於 Servlet API 之上,使用的是同步阻塞式 I/O 模型,什麼是同步阻塞式 I/O 模型呢?就是說,每一個請求對應一個執行緒去處理。
Spring WebFlux 是一個非同步非阻塞式的 Web 框架,它能夠充分利用多核 CPU 的硬體資源去處理大量的併發請求。
二、WebFlux 的優勢&提升效能?
WebFlux 內部使用的是響應式程式設計(Reactive Programming),以 Reactor 庫為基礎, 基於非同步和事件驅動,可以讓我們在不擴充硬體資源的前提下,提升系統的吞吐量和伸縮性。
WebFlux 並不能使介面的響應時間縮短,它僅僅能夠提升吞吐量和伸縮性。
三、WebFlux 應用場景
Spring WebFlux 是一個非同步非阻塞式的 Web 框架,所以,它特別適合應用在 IO 密集型的服務中,比如微服務閘道器這樣的應用中。
IO 密集型包括:磁碟IO密集型,網路IO密集型,微服務閘道器就屬於網路 IO 密集型,使用非同步非阻塞式程式設計模型,能夠顯著地提升閘道器對下游服務轉發的吞吐量。
四、選 WebFlux 還是 Spring MVC?
WebFlux 不是 Spring MVC 的替代方案!,雖然 WebFlux 也可以被執行在 Servlet 容器上(需是 Servlet 3.1+ 以上的容器),但是 WebFlux 主要還是應用在非同步非阻塞程式設計模型,而 Spring MVC 是同步阻塞的,如果你目前在 Spring MVC 框架中大量使用非同步方案,那麼,WebFlux 才是你想要的,否則,使用 Spring MVC 才是你的首選。
在微服務架構中,Spring MVC 和 WebFlux 可以混合使用,比如已經提到的,對於那些 IO 密集型服務(如閘道器),我們就可以使用 WebFlux 來實現。
五、異同點
相同點:
- 都可以使用 Spring MVC 註解,如
@Controller
, 方便我們在兩個 Web 框架中自由轉換; - 均可以使用 Tomcat, Jetty, Undertow Servlet 容器(Servlet 3.1+);
- ...
注意點:
- Spring MVC 因為是使用的同步阻塞式,更方便開發人員編寫功能程式碼,Debug 測試等,一般來說,如果 Spring MVC 能夠滿足的場景,就儘量不要用 WebFlux;
- WebFlux 預設情況下使用 Netty 作為伺服器;
- WebFlux 不支援 MySql;