日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、傳統并發模型的缺點

基于線程的并發

高并發服務器架構--SEDA架構分析

 

特點:
每任務一線程
直線式的編程
使用資源昂高,
context切換代價高,競爭鎖昂貴
太多線程可能導致吞吐量下降,響應時間暴漲。

基于事件的并發模型

高并發服務器架構--SEDA架構分析

 

特點:
單線程處理事件
每個并發流實現為一個有限狀態機
應用直接控制并發
負載增加的時候,吞吐量飽和
響應時間線性增長

二、SEDA架構

高并發服務器架構--SEDA架構分析

 


特點:
(1)服務通過queue分解成stage:
每個stage代表FSM的一個狀態集合
Queue引入了控制邊界
(2)使用線程池驅動stage的運行:
將事件處理同線程的創建和調度分離
Stage可以順序或者并行執行
Stage可能在內部阻塞,給阻塞的stage分配較少的線程
 

1、Stage-可靠構建的基礎

高并發服務器架構--SEDA架構分析

 


(1)應用邏輯封裝到Event Handler
接收到許多事件,處理這些事件,然后派發事件加入其他Stage的queue
對queue和threads沒有直接控制
Event queue吸納過量的負載,有限的線程池維持并發
(2)Stage控制器
負責資源的分配和調度
控制派發給Event Handler的事件的數量和順序
Event Handler可能在內部丟棄、過濾、重排序事件。
2、應用=Stage網絡
(1)有限隊列 
入隊可能失敗,如果隊列拒絕新項的話
阻塞在滿溢的隊列上來實現吸納壓力
通過丟棄事件來降低負載
(2) 隊列將Stage的執行分解
引入了顯式的控制邊界
提供了隔離、模塊化、獨立的負載管理
(3)方便調試和profile
事件的投遞可顯
時間流可跟蹤
通過監測queue的長度發現系統瓶頸
3、動態資源控制器
(1)、線程池管理器
目標: 決定Stage合理的并發程度
操作:
觀察queue長度,如果超過閥值就添加線程
移除空閑線程

高并發服務器架構--SEDA架構分析

 

(2)、批量管理器
目的:低響應時間和高吞吐量的調度
操作:
Batching因子:Stage一次處理的消息數量
小的batching因子:低響應時間
大的batching因子:高吞吐量
嘗試找到具有穩定吞吐量的最小的batching因子
觀察stage的事件流出率
當吞吐量高的時候降低batching因子,低的時候增加

高并發服務器架構--SEDA架構分析

 


三、小結
SEDA主要還是為了解決傳統并發模型的缺點,通過將服務器的處理劃分各個Stage,利用queue連接起來形成一個pipeline的處理鏈,并且在Stage中利用控制器進行資源的調控。資源的調度依據運行時的狀態監視的數據來進行,從而形成一種反應控制的機制,而stage的劃分也簡化了編程,并且通過queue和每個stage的線程池來分擔高并發請求并保持吞吐量和響應時間的平衡。簡單來說,我看中的是服務器模型的清晰劃分以及反應控制。

分享到:
標簽:架構 SEDA
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定