《面向生產(chǎn)環(huán)境的SOA系統(tǒng)設(shè)計(jì)》由會員分享,可在線閱讀,更多相關(guān)《面向生產(chǎn)環(huán)境的SOA系統(tǒng)設(shè)計(jì)(42頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,準(zhǔn)備好發(fā)射了嗎?,面向生產(chǎn)環(huán)境的,SOA,系統(tǒng)設(shè)計(jì),*,典型,SOA,應(yīng)用,展現(xiàn)服務(wù),產(chǎn)品服務(wù),公共服務(wù),基礎(chǔ)服務(wù),集成服務(wù),基礎(chǔ)服務(wù),公共服務(wù),公共服務(wù),公共服務(wù),外部服務(wù)提供者,服務(wù)使用者,集成服務(wù),一個(gè),SOA,應(yīng)用由一系列服務(wù)松散復(fù)合而成。,*,服務(wù)使用者,服務(wù)的內(nèi)部,服務(wù)接入,流程、任務(wù)、決策,領(lǐng)域倉儲,外部服務(wù),資源,外部服務(wù),領(lǐng)域?qū)ο?服務(wù)代理,每個(gè)服務(wù)都是自包含、自主運(yùn)行的功能單元。,*,服務(wù)是基礎(chǔ)架構(gòu)單元,作為基礎(chǔ)業(yè)務(wù)、應(yīng)用與技術(shù)架構(gòu)單元,服務(wù)具有豐富的含義。,服務(wù)使用者,服務(wù)提供者,
2、服務(wù),質(zhì)量約束,服務(wù)位置,功能描述,交互模式,通信協(xié)議,消息格式,*,SOA,技術(shù)基礎(chǔ)設(shè)施,SOA,應(yīng)用需要一系列技術(shù)基礎(chǔ)設(shè)施的支持。,數(shù)據(jù),企業(yè)服務(wù)總線,展現(xiàn)與交互,流程與決策,組件與服務(wù),數(shù)據(jù)與應(yīng)用集成,跨企業(yè)集成,服務(wù)目錄,服務(wù)監(jiān)控,公共,技術(shù)服務(wù),后端應(yīng)用,渠道,browser,客戶端,移動設(shè)備,語音,外部企業(yè)應(yīng)用,*,一個(gè)典型的電子支付應(yīng)用,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,通過建設(shè)基礎(chǔ)業(yè)務(wù)平臺,達(dá)到快速構(gòu)建與改進(jìn)上層的產(chǎn)品與解決方案的目標(biāo)。,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,x2,*,交
3、付前,你胸有成竹嗎,性能,容量,健壯,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,?,x2,*,性能,針對性能的分析與優(yōu)化,*,響應(yīng)時(shí)間分析,如何合理地估算服務(wù)的響應(yīng)時(shí)間?,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,200,250,10,350,100,150,300,(10*3+350+100+150+300)+50,=980,990,x2,30,*,響
4、應(yīng)時(shí)間優(yōu)化,通過異步調(diào)用降低響應(yīng)時(shí)間,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,200,10,350,100,150,(10*3+350+100+150+10)+50,=690,700,async,10/300,x2,250,30,*,響應(yīng)時(shí)間優(yōu)化,通過,future,異步調(diào)用降低響應(yīng)時(shí)間,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,200,10,350,
5、(10*3+350+max(100,150)+10)+50,=590,600,async,10/300,future,future,100,150,x2,250,30,*,關(guān)于性能的基礎(chǔ)設(shè)施支持,知曉所有服務(wù)的響應(yīng)時(shí)間數(shù)據(jù),:,服務(wù)監(jiān)控,支持各種異步服務(wù)使用,:,服務(wù)通信總線,數(shù)據(jù),企業(yè)服務(wù)總線,展現(xiàn)與交互,流程與決策,組件與服務(wù),數(shù)據(jù)與應(yīng)用集成,跨企業(yè)集成,服務(wù)目錄,服務(wù)監(jiān)控,公共,技術(shù)服務(wù),后端應(yīng)用,渠道,browser,客戶端,移動設(shè)備,語音,外部企業(yè)應(yīng)用,*,小結(jié),在設(shè)計(jì)階段就必須估算與優(yōu)化性能,準(zhǔn)確估算性能依賴于真實(shí)的監(jiān)控?cái)?shù)據(jù),尤其是業(yè)務(wù)平臺的性能監(jiān)控?cái)?shù)據(jù),靈活的服務(wù)通信設(shè)施使提升性
6、能成為可能,*,容量,針對容量的分析與優(yōu)化,*,吞吐量分析,如何合理地估算新業(yè)務(wù)上線對容量的需求?,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,?,?,50,50,150,50,50,50,50,x2,50,50,50,150,*,吞吐量分析,平臺容量對業(yè)務(wù)容量的約束,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,50,50,150,50,50,50,50,x
7、2,50,50,50,150,90(3/5),50*min(4/5,3/5),=30,120(4/5),*,關(guān)鍵服務(wù)的吞吐量優(yōu)化,充分?jǐn)U容,平衡擴(kuò)容,消除資源單點(diǎn)瓶頸,服務(wù)使用者,服務(wù)提供者,服務(wù),服務(wù)吞吐量,伸縮公式,伸縮上限,單資源吞吐量上限,*,非關(guān)鍵服務(wù)的吞吐量優(yōu)化,非關(guān)鍵的業(yè)務(wù)服務(wù)的容量允許短路,提供降級服務(wù)。,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,x2,optional,optional,*,資源使用分析,估算新業(yè)務(wù)對關(guān)鍵資源的使用,(,以,SQL,執(zhí)行次數(shù)
8、為例,),商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,5,10,6,10,8,15,10,x2,8,5,15,13,(13+(15*2)+10=53,23,(6*3+53+23+15+10)+10,=129,134,*,資源使用優(yōu)化,通用服務(wù)代理緩存服務(wù)結(jié)果。,服務(wù)提供者支持檢查資源更新時(shí)間戳。,服務(wù)使用者,服務(wù)提供者,1.,查詢,(,資源,Id),服務(wù)結(jié)果,cache,key=,服務(wù),+,操作,+,資源,Id,value=,資源,Id+,時(shí)間戳,+,服務(wù)結(jié)果,通用服務(wù)代理,
9、2.,檢查,cache(Y),5.,返回,cache,結(jié)果,3.,是否更新,?,4.No,*,關(guān)于容量的基礎(chǔ)設(shè)施支持,知曉所有服務(wù)的吞吐量與資源使用,:,服務(wù)監(jiān)控,支持,optional,服務(wù)使用,:,服務(wù)通信總線,服務(wù)結(jié)果,cache:,服務(wù)代理,數(shù)據(jù),企業(yè)服務(wù)總線,展現(xiàn)與交互,流程與決策,組件與服務(wù),數(shù)據(jù)與應(yīng)用集成,跨企業(yè)集成,服務(wù)目錄,服務(wù)監(jiān)控,公共,技術(shù)服務(wù),后端應(yīng)用,渠道,browser,客戶端,移動設(shè)備,語音,外部企業(yè)應(yīng)用,服務(wù)代理,*,小結(jié),在設(shè)計(jì)階段就必須估算與優(yōu)化容量,充分、平衡對業(yè)務(wù)平臺進(jìn)行擴(kuò)容,既有前瞻性又控制成本,針對,“,熱點(diǎn),”,進(jìn)行優(yōu)化,準(zhǔn)確估算容量依賴于真實(shí)的監(jiān)
10、控?cái)?shù)據(jù),區(qū)別業(yè)務(wù)的等級,*,健壯,在不確定的世界中交付確定的服務(wù),*,單個(gè)服務(wù)的故障條件,服務(wù)使用者,服務(wù)接入,流程、任務(wù)、決策,領(lǐng)域倉儲,外部服務(wù),資源,外部服務(wù),領(lǐng)域?qū)ο?服務(wù)代理,唯一確定的是不確定。,并發(fā)請求,重復(fù)請求,超量請求,資源不可用,資源響應(yīng)超時(shí),通信中斷,外部服務(wù)響應(yīng)超時(shí),外部服務(wù)違背功能契約,BUG,處理超時(shí),服務(wù)不可用,請求積壓,處理中斷,*,故障空間組合爆炸,處處都有多種故障可能,可能窮盡其組合嗎?,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,x2,重
11、復(fù)請求,BUG,外部服務(wù)中斷,資源不可用,*,應(yīng)對方式,避免發(fā)生,降低概率,控制影響,快速恢復(fù),故障條件,應(yīng)對方式,超量請求,配額控制,重復(fù)請求,冪等控制,并發(fā)請求,并發(fā)控制,請求積壓,請求丟棄,服務(wù),/,資源響應(yīng)超時(shí),時(shí)間控制,可恢復(fù)通信故障,合理重試,處理中斷,事務(wù),/,分布事務(wù),BUG,自檢,*,局部配額控制,一種簡單的基于令牌的配額控制方法。,令牌服務(wù)維持本地各個(gè)服務(wù)的可用令牌數(shù)。,服務(wù)接入,令牌服務(wù),服務(wù)處理,1.,服務(wù)請求,2.,申請令牌,(Y),3.,服務(wù)處理,4.,歸還令牌,5.,返回結(jié)果,服務(wù)接入,令牌服務(wù),服務(wù)處理,1.,服務(wù)請求,2.,申請令牌,(N),3.,拒絕請求,*
12、,冪等服務(wù),同一個(gè)服務(wù)操作實(shí)例最多只允許執(zhí)行一次。,資源,一個(gè)服務(wù)操作實(shí)例,兩種操作實(shí)例標(biāo)識法,:,基于業(yè)務(wù)活動,實(shí)例,Id=,業(yè)務(wù)活動,Id+,操作序號,(2),基于資源,實(shí)例,Id=,資源,Id+,操作類型,動作,1,動作,2,動作,3,一次業(yè)務(wù)活動執(zhí)行,*,冪等控制,一種簡單的基于操作日志的冪等控制方法。,操作實(shí)例,Id,上建立唯一性約束。,操作日志不僅用于冪等控制,還可用于操作審計(jì)等用途。,服務(wù)接入,操作日志服務(wù),服務(wù)處理,1.,服務(wù)請求,2.,登記日志,(OK),3.,服務(wù)處理,4.,返回結(jié)果,服務(wù)接入,操作日志服務(wù),服務(wù)處理,1.,服務(wù)請求,2.,登記日志,(,違背唯一約束,),3
13、.,拒絕處理,*,基于資源的并發(fā)控制,(,悲觀,),經(jīng)典的資源并發(fā)控制方式。,事務(wù)長度限制了系統(tǒng)伸縮能力。,不適用熱點(diǎn)資源。,資源,服務(wù)處理引擎,領(lǐng)域倉儲,2.,加載并鎖定資源,root,對象,領(lǐng)域?qū)ο?/,服務(wù),3.,領(lǐng)域?qū)ο蟛僮?4.,持久領(lǐng)域?qū)ο?1.,開始事務(wù),5.,提交事務(wù),*,基于資源的并發(fā)控制,(,樂觀,),同樣經(jīng)典的資源并發(fā)控制方式。,事務(wù)長度短,提高系統(tǒng)伸縮性。,同樣不適用于熱點(diǎn)資源。,資源,服務(wù)處理引擎,領(lǐng)域倉儲,1.,加載領(lǐng)域?qū)ο?領(lǐng)域?qū)ο?/,服務(wù),2.,領(lǐng)域?qū)ο蟛僮?4.,更新領(lǐng)域?qū)ο笸瑫r(shí)檢查并發(fā),3.,開始事務(wù),5.,提交事務(wù),*,基于分布式鎖服務(wù)的并發(fā)控制,沒有可
14、加鎖的資源,怎么辦?,以操作實(shí)例,Id,作為鎖標(biāo)識。,每個(gè)鎖都有生命周期,(lock_delay),過期鎖被自我釋放。,服務(wù)處理時(shí)間不應(yīng)超過,lock_delay,。,服務(wù)接入,分布式鎖服務(wù),服務(wù)處理,1.,服務(wù)請求,2.,申請互斥鎖,(,帶,lock_delay),3.,服務(wù)處理,5.,返回結(jié)果,4.,釋放互斥鎖,超時(shí),自動釋放鎖,*,請求丟棄,服務(wù)請求包含處理期限,(=,請求發(fā)出時(shí)間,+,客戶端超時(shí)設(shè)置,),已過期的請求直接丟棄,騰出寶貴服務(wù)處理資源。,服務(wù)接入,服務(wù)處理,1.,從隊(duì)列中取出服務(wù)請求,3.,丟棄請求,2.,請求已過期?,(Yes),*,時(shí)間控制,延誤的處理比不處理更糟糕。,
15、一個(gè)業(yè)務(wù)活動是否要繼續(xù)處理,取決于整體期限。,整體期限在統(tǒng)一業(yè)務(wù)活動上下文中傳輸。,考慮服務(wù)器時(shí)間差異補(bǔ)償。,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,x2,00:00.000/1000ms,00:00.800/500ms,00:01.100 00:01.000,*,領(lǐng)域自檢,不變式,狀態(tài)變遷,資源,服務(wù)處理引擎,領(lǐng)域倉儲,2.,加載并鎖定資源,root,對象,領(lǐng)域?qū)ο?/,服務(wù),4.,領(lǐng)域?qū)ο蟛僮?6.,持久領(lǐng)域?qū)ο?1.,開始事務(wù),7.,提交事務(wù),3.,領(lǐng)域?qū)ο笞詸z,5
16、.,領(lǐng)域?qū)ο笞詸z,*,分布事務(wù),(TCC,模式,),Try:,嘗試執(zhí)行業(yè)務(wù),Confirm:,確認(rèn)執(zhí)行業(yè)務(wù),Cancel:,取消執(zhí)行業(yè)務(wù),業(yè)務(wù)服務(wù),tryX,confirmX,cancelX,*,分布事務(wù),(TCC,模式,),基于,TCC,模式的分布事務(wù)執(zhí)行過程示例。,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方案,x2,一次資金記賬操作分為兩步,:,try:,完成所有賬務(wù)處理必須的業(yè)務(wù)檢查與資源,(,資金,),預(yù)留。,confirm:,釋放資源并真正進(jìn)行賬務(wù)處理。,confirm,操作在整個(gè)業(yè)務(wù)活動結(jié)束后由系統(tǒng)自動完成。,*,分布事務(wù),(,補(bǔ)償模式,),do:,真正執(zhí)行業(yè)務(wù),compensate,:,業(yè)務(wù)補(bǔ)償,業(yè)務(wù)服務(wù),doX,compensateX,*,分布事務(wù),(,補(bǔ)償模式,),一次補(bǔ)償模式的業(yè)務(wù)執(zhí)行過程。,商戶接入,訂單處理,支付處理,清算處理,通信前置,資金記賬,收費(fèi)處理,營銷處理,客戶信息,銀行支付清算網(wǎng),互聯(lián)網(wǎng)商戶,x3,安全核查,基礎(chǔ)業(yè)務(wù)平臺,產(chǎn)品與解決方