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