//
SEDA架構(gòu)模型 - 簡(jiǎn)書
http://www.reibang.com/p/e184fdc0ade4
//
一狗唉、傳統(tǒng)并發(fā)模型的缺點(diǎn)
基于線程的并發(fā)
特點(diǎn):每任務(wù)一線程直線式的編程使用資源昂高纸兔,context切換代價(jià)高始衅,競(jìng)爭(zhēng)鎖昂貴太多線程可能導(dǎo)致吞吐量下降,響應(yīng)時(shí)間暴漲。
//
基于事件的并發(fā)模型
特點(diǎn):?jiǎn)尉€程處理事件每個(gè)并發(fā)流實(shí)現(xiàn)為一個(gè)有限狀態(tài)機(jī)應(yīng)用直接控制并發(fā)負(fù)載增加的時(shí)候幸逆,吞吐量飽和響應(yīng)時(shí)間線性增長(zhǎng)
//
二票从、SEDA架構(gòu)
特點(diǎn):
(1)服務(wù)通過queue分解成stage: 每個(gè)stage代表FSM的一個(gè)狀態(tài)集合 Queue引入了控制邊界
(2)使用線程池驅(qū)動(dòng)stage的運(yùn)行: 將事件處理同線程的創(chuàng)建和調(diào)度分離 Stage可以順序或者并行執(zhí)行 Stage可能在內(nèi)部阻塞晰房,給阻塞的stage分配較少的線程
//
三、小結(jié)
SEDA主要還是為了解決傳統(tǒng)并發(fā)模型的缺點(diǎn)窍荧,通過將服務(wù)器的處理劃分各個(gè)Stage辉巡,利用queue連接起來形成一個(gè)pipeline的處理鏈,并且在Stage中利用控制器進(jìn)行資源的調(diào)控蕊退。資源的調(diào)度依據(jù)運(yùn)行時(shí)的狀態(tài)監(jiān)視的數(shù)據(jù)來進(jìn)行郊楣,從而形成一種反應(yīng)控制的機(jī)制,而stage的劃分也簡(jiǎn)化了編程瓤荔,并且通過queue和每個(gè)stage的線程池來分擔(dān)高并發(fā)請(qǐng)求并保持吞吐量和響應(yīng)時(shí)間的平衡净蚤。簡(jiǎn)單來說,我看中的是服務(wù)器模型的清晰劃分以及反應(yīng)控制输硝。
//
基于SEDA模型的交易中間件服務(wù)器架構(gòu)研究_百度學(xué)術(shù)
http://xueshu.baidu.com/s?wd=paperuri:(334b6c1fae6861e2113e1e70c6442314)&filter=sc_long_sign&sc_ks_para=q%3D%E5%9F%BA%E4%BA%8ESEDA%E6%A8%A1%E5%9E%8B%E7%9A%84%E4%BA%A4%E6%98%93%E4%B8%AD%E9%97%B4%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9E%B6%E6%9E%84%E7%A0%94%E7%A9%B6&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8&sc_us=3847411028352465752
在大型分布式企業(yè)環(huán)境中,應(yīng)用通常面對(duì)著異構(gòu)的網(wǎng)絡(luò)環(huán)境今瀑、不同的硬件平臺(tái)以及相異的通訊協(xié)議。如果通過應(yīng)用自身來解決服務(wù)器之間的通訊所帶來的數(shù)據(jù)点把、協(xié)議轉(zhuǎn)換問題,毫無疑問將嚴(yán)重影響應(yīng)用開發(fā)的復(fù)雜程度和開發(fā)效率橘荠。而使用中間件(Middleware)可以輕松解決這些問題。針對(duì)民航業(yè)務(wù)實(shí)時(shí)并發(fā)請(qǐng)求多郎逃、業(yè)務(wù)功能復(fù)雜多變哥童、數(shù)據(jù)量大、業(yè)務(wù)之間聯(lián)系密切等業(yè)務(wù)特點(diǎn)設(shè)計(jì)了中間件服務(wù)器的軟件架構(gòu)衣厘。
本文分析當(dāng)前流行的服務(wù)器并發(fā)模型的優(yōu)缺點(diǎn),選擇了分階段的事件驅(qū)動(dòng)架構(gòu)(Staged Event‐Driven Architecture,SEDA)作為服務(wù)器的架構(gòu)基礎(chǔ),以SEDA分階段思想對(duì)民航業(yè)務(wù)進(jìn)行階段劃分,設(shè)計(jì)分布式環(huán)境下的中間件平臺(tái)部署及運(yùn)行結(jié)構(gòu),以兩層SEDA共同完成對(duì)用戶業(yè)務(wù)分階段特性的支持如蚜。該架構(gòu)使得應(yīng)用開發(fā)人員無需關(guān)心異步調(diào)用細(xì)節(jié),這大大降低了應(yīng)用開發(fā)的復(fù)雜程度,提升了開發(fā)效率压恒。
實(shí)驗(yàn)結(jié)果表明基于SEDA的服務(wù)器軟件架構(gòu)比基于線程池模型的服務(wù)器軟件架構(gòu)擁有更好的處理高并發(fā)服務(wù)請(qǐng)求的能力,能夠使大規(guī)模民航旅客服務(wù)信息系統(tǒng)有效應(yīng)對(duì)高并發(fā)高負(fù)載環(huán)境影暴。同時(shí)本文分析了中間件平臺(tái)的總體結(jié)構(gòu),根據(jù)其結(jié)構(gòu)特點(diǎn)設(shè)計(jì)了負(fù)載均衡機(jī)制,提出了固定比例因子負(fù)載均衡算法并進(jìn)行魯棒性分析。為了提高中間件平臺(tái)的魯棒性和可靠性,根據(jù)其軟硬件結(jié)構(gòu)特點(diǎn)在固定比例因子負(fù)載均衡算法的基礎(chǔ)上提出了動(dòng)態(tài)負(fù)載均衡算法探赫。同時(shí)設(shè)計(jì)了維護(hù)負(fù)載度量指標(biāo)所需的數(shù)據(jù)結(jié)構(gòu)以及在這種數(shù)據(jù)結(jié)構(gòu)下維護(hù)該指標(biāo)的方法,并進(jìn)行了實(shí)驗(yàn)對(duì)比驗(yàn)證型宙。實(shí)驗(yàn)結(jié)果表明負(fù)載均衡算法能使中間件平臺(tái)的魯棒性和可靠性得到提升。