複製鏈接
請複製以下鏈接發送給好友

SEDA

鎖定
SEDA(Staged Event-Driven Architecture)的核心思想是把一個請求處理過程分成幾個Stage,不同資源消耗的Stage使用不同數量的線程來處理,Stage間使用事件驅動的異步通信模式。
外文名
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日文原版 [1]  英文名: SEDA
版本: 月刊
地區: 日本
語言: 日文
SEDA雜誌介紹: 《SEDA》時下年輕女孩的最想得知的新街頭風流行雜誌。每期不定期針對藝能界最時尚的人氣偶像做時尚專訪特集,還有多位演藝音樂界的時尚代表,為您示範介紹最新服飾及發妝造型。除此之外,每期還有許多街頭最新流行動態,帶您前往日本各地區直擊時下街頭年輕人的穿着打扮,讓您藉由最新街頭裝扮找出最適合自己的特色風格!
參考資料