@
PPC方案也稱為程序建立連線方案;如圖:
prefork方案稱之為預先載入程序方案,如圖:
當用戶端發來到伺服器端,父程序接收到請求,再將請求轉給預先載入好的子程序,進行業務處理[資料的讀取,資料的新增]。
TCP方案稱為程序與執行緒的方案;如圖:
當用戶端傳送請求到伺服器端,伺服器端系統[主程序]接收到請求並建立一個子執行緒來處理業務邏輯[資料讀取,資料新增]。
prethread方案可以稱為預先載入執行緒的方案;如圖:
當用戶端傳送請求到伺服器端,伺服器端系統[主程序]接收到請求轉給預先建立好的子執行緒來處理業務邏輯[資料讀取,資料新增]。
執行緒池是將預先建立好的執行緒放線上程池中;如圖:
當用戶端傳送請求到伺服器端,伺服器端系統[主程序]接收到請求到執行緒池中取一個執行緒來處理業務邏輯 [資料讀取,資料新增]。
概念
缺陷
概念
核心思想
優點
缺陷
多路複用+多執行緒其實就是一個主程序加多個執行緒的處理方案;如圖:
當系統[微服務]啟動之後,Reactor框架中的select監聽使用者端的請求,當用戶端發起查詢商品請求後,Reactor框架中的select會判斷是建立連線還是進行業務處理,如果第一次進來收到是連線請求,Reactor回將該請求給dispach,dispach轉給Accept,Accept並創立連線,同時並建立Handler類根據事件型別在主程序裡面開啟一個新的執行緒處理業務邏輯;當用戶端發起查詢訂單請求後,Reactor框架中的select會判斷是建立連線還是進行業務處理,如果第一次進來收到是連線請求,Reactor回將該請求給dispach,dispach轉給Accept,Accept並創立連線,同時並建立Handler類根據事件型別在主程序裡面開啟一個新的執行緒處理業務邏輯;
誰先完成業務處理,誰就先返回給使用者端。
當用戶端發起請求,主程序Reactor框架的select監聽使用者端的請求,Reactor會將該請求給dispach,dispach轉給Accept,Accept並創立連線後,再將請求交給子程序,子程序會建立一個執行緒處理業務邏輯;[主程序與子程序相互隔離,主程序負責建立連線,子程序建立執行緒,執行緒負責處理業務邏輯。python與go語言符合這種方案,既可以多程序又可以多執行緒;C#與java是單程序多執行緒方案;nginx也是用的多程序的方案] 如圖:
缺陷
概念
實現場景
1 使用Nginx部署系統叢集,如圖:
2 使用nginx叢集部署系統叢集,如圖:
3 使用F5部署nginx叢集,如圖:
F5處理並行能力差不多在100萬左右。
缺陷
當用戶端發起請求到dns伺服器,使用負載均衡演演算法獲取到相應的IP地址,再根據地址到相應的F5裝置,F5再用負載均衡演演算法到相應的nginx伺服器,nginx再用負載均衡演演算法到相應的服務處理業務邏輯。
缺陷