SEDA

SEDA(Staged Event-Driven Architecture)的核心思想是把一個請求處理過程分成幾個Stage,不同資源消耗的Stage使用不同數量的執行緒來處理,Stage間使用事件驅動的異步通信模式。

基本介紹

  • 中文名:SEDA
  • 中文名:SEDA日文原版
  • 語言:日文
  • 版本:月刊
基本介紹,雜誌SEDA,

基本介紹

SEDA(Staged Event-Driven Architecture)的核心思想是把一個請求處理過程分成幾個Stage,不同資源消耗的Stage使用不同數量的執行緒來處理,Stage間使用事件驅動的異步通信模式。
更進一步,在每個Stage中可以動態配置自己的執行緒數,在超載時降級運行(如輸出純文字頁面)或拒絕服務。
在每個Stage的通常有如下組件:
Incoming Event Queue ,事件佇列。 Admission Controller 閥門,拒絕服務。 Dynamically sized Thread Pool, 執行緒池。 Event Handler ,實際處理業務的Component。 Resource Controller ,控制Stage的參數。 2.Web2.0+SOA環境下的SEDA套用 Web2.0對架構師提出了新的挑戰 , JavaEE 的同步調用機制(除JMS),有限的執行緒池與連線池(超出範圍性能會下降),固定的定義在JNDI的資源對Web2.0/SOA的需求並不吻合。對BEEP,SCTP這些協定,必須依靠JCA另行編寫模組來實現長連線模型。
Java EE 迎合 Web 2.0(IBM DW) 提出,從統計學上看在系統匯流排程數固定的情況下,使用SEDA能獲得較高的Throughput,階段間的資源差異越大就越明顯。 比如處理一個Web 2.0常用Mashup請求,有如下幾步:
接收用戶請求(1單位時間) 資料庫查詢(4單位時間) 根據資料庫查詢結果,準備Web Service調用參數(1單位時間) 發起Web Service調用((16單位時間)) 將結果渲染返回給用戶(2單位時間) 那么SEDA會使用一條執行緒處理1.接收用戶請求、3.準備WebService、5.返回結果,兩條執行緒處理2.資料庫查詢, 而5條執行緒處理耗時最多的4.WebService請求。 結果表明,當遠程調用所花時間不變,而本地操作得到最佳化時,系統通量也能獲得明顯提高。
3. Mule 中的SEDA 實例 Using SEDA to Ensure Service Availability(InfoQ)  Mule是SEDA架構的遵循者。每個Component間,用inbound->outBound的Queue異步相連,每個Component可以設定自己的執行緒池大小,佇列長度。
因此SEDA中的Stag間事件驅動異步連結,Stag內Incoming Event Queue,Thread Pool,Event Handler都有了。
<mule-descriptor name="RadioCarUMO" implementation="radioCar"> <threading-profile maxThreadsActive="5" maxThreadsIdle="10" poolExhaustedAction="WAIT" threadWaitTimeout="-1" id="component" doThreading="true"/> <queue-profile maxOutstandingMessages="6"/> <inbound-router> <endpoint address="RadioCarsQueue"/> <router className="org.mulefair.routing.BennyTheGatekeeper"/> </inbound-router> <outbound-router> <router className="org.mule.routing.outbound.OutboundPassThroughRouter"> <endpoint address="FairAreaQueue"/> </router> </outbound-router></mule-descriptor>  
而例子中的InboundRouter BennyTheGatekeeper,則實現了administration controller的角色,本來poolExhaustedAction="WAIT",而administration controller可以通過計數器,直接refuse需求,將請求轉發到alarm queue。
整個Stag中唯一缺失是動態改變資源參數的Resource Controller,threadpool也不是Dynamically sized Thread Pool,但這似乎不重要了。
再一次覺得Mule充當Service Container比ESB時還要稱職。

雜誌SEDA

日本原版雜誌 中文名: SEDA日文原版英文名: SEDA
SEDA
版本: 月刊
地區: 日本
語言: 日文
SEDA雜誌介紹: 《SEDA》時下年輕女孩的最想得知的新街頭風流行雜誌。每期不定期針對藝能界最時尚的人氣偶像做時尚專訪特集,還有多位演藝音樂界的時尚代表,為您示範介紹最新服飾及發妝造型。除此之外,每期還有許多街頭最新流行動態,帶您前往日本各地區直擊時下街頭年輕人的穿著打扮,讓您藉由最新街頭裝扮找出最適合自己的特色風格!

相關詞條

熱門詞條

聯絡我們