網絡服務器後臺程序開發架構

網絡服務器後臺程序開發幾種架構包括:

1.多線程模型,多線程模型即每次網絡請求開啓一個線程處理,這種模型瓶頸是高併發,容災性能差。一旦某次處理掛起,將影響其他的線程的創建和運行,整個處理的併發數收到創建的線程個數限制,無法處理突發請求,存在很大不確定性。

2.單線程+線程池模型。線程池具有一定的伸縮性。線程池比多線程模型要好,可以看成動態的多線程模型。網絡層的線程與邏輯層的線程交互模型很重要。邏輯層不涉及回覆請求,由一個統一的線程來進行分發和回覆前端請求。這樣將網絡層和邏輯層分開易於擴展和維護程序結構。

3.多進程模型。前兩種線程模型一般做成同步處理。同步處理的最大後果是如果一次請求阻塞,將會影響其他的請求的處理,主要涉及到IO操作或者訪問數據庫。而多進程模型一般會做成異步處理,異步處理就能最大限度的提高併發量,並且每次請求是互相獨立的不會相互影響,只要不是本地的IO操作阻塞,都不會出現阻塞。一次請求在後端數據庫阻塞,其他請求處理正常,容災性能好。

    網絡後臺程序的進程模型還有觸發和喚醒之分。在多線程模型中,觸發即是一次網絡IO可能觸發多個線程同時喚醒,可能存在"驚羣"現象,驚羣現象會導致服務的不穩定。在多線程模型中,喚醒即是一次網絡IO由一個主線程進行響應,由這個線程來喚醒其他的工作線程,喚醒策略由

主線程確定。優點很多,主線程能夠控制整個程序的運行,可以做到過載保護,程序利於維護和側路變更。

發佈了28 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章