為什么不采用多執行緒模型管理連接?
(1)無狀態服務,沒有必要進行共享行程記憶體
(2)采用獨立的行程,可以讓互相之間不會影響,一個行程例外崩潰,其它行程的服務不會中斷,提升了價格的可靠性
(3)行程之間不共享資源,不需要加鎖,所以省掉了鎖帶來的開銷
為什么不采用多執行緒處理邏輯業務?
(1)行程數已經等于核心數,再新建執行緒處理任務,只會搶占現有行程,增加切換代價
(2)作為接入層,基本上都是資料轉發業務,網路IO任務的等待耗時部分,已經被處理為非阻塞,全異步,事件驅動模式,在沒有更多cpu的情況下,再利用多執行緒處理,意義不大
并且,如果行程中有阻塞的處理邏輯,應該由各個業務進行解決,比如OpenResty中利用了lua協程,對阻塞業務進行了優化
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/295376.html
標籤:其他
