1. 程式人生 > 其它 >【數學】尤拉函式的計算公式及其證明

【數學】尤拉函式的計算公式及其證明

一、什麼是 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;