我是 Spring 的新手,我正在讀一本書“Pro Spring boot 2”。這里說 Spring Web MVC 對每個請求都有一些阻塞,而 Spring Webflux 是一個完全非阻塞的堆疊。
- 請告訴我,這是什么意思?
- 來到 Spring MVC 的請求會激活一個執行緒來執行這個請求。何時以及為何被封鎖?
- 為什么 Spring WebFlux 不阻塞執行緒?
uj5u.com熱心網友回復:
- Spring Web MVC 使用單個執行緒來處理對 API 的每個請求。Spring Webflux 不會阻塞執行緒來處理每個請求,因為沒有執行緒一直在等待要完成的事情(例如等待來自資料庫的答案)。
- 如 1. 中所寫,它可以在等待來自資料庫或通過 HTTP 呼叫的另一個服務的回應時被阻止。
- Spring Webflux 利用了完全非阻塞的回應式堆疊(查看https://projectreactor.io/ )。這意味著沒有執行緒被阻塞等待某事發生。一切都基于回應式流發布者(Mono和Flux),使您的代碼對可用的資料(來自資料庫或通過 HTTP 呼叫的另一個服務作為示例)進行回應。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425493.html
上一篇:按關鍵字和類別在串列中搜索
