版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
微服務(wù)開發(fā)中的數(shù)據(jù)架構(gòu)設(shè)計
前言微服務(wù)是當(dāng)前非常流行的技術(shù)框架,通過服務(wù)的小型化、原子化以及分布式架構(gòu)的彈性伸縮和高可用性,可以實現(xiàn)業(yè)務(wù)之間的松耦合、業(yè)務(wù)的靈活調(diào)整組合以及系統(tǒng)的高可用性。為業(yè)務(wù)創(chuàng)新和業(yè)務(wù)持續(xù)提供了一個良好的基礎(chǔ)平臺。本文分享在這種技術(shù)架構(gòu)下的數(shù)據(jù)架構(gòu)的設(shè)計思想以及設(shè)計要點,本文包括下面若干內(nèi)容。微服務(wù)技術(shù)框架中的多層數(shù)據(jù)架構(gòu)設(shè)計數(shù)據(jù)架構(gòu)設(shè)計中的要點要點1:數(shù)據(jù)易用性要點2:主、副數(shù)據(jù)及數(shù)據(jù)解耦要點3:分庫分表要點4:多源數(shù)據(jù)適配要點5:多源數(shù)據(jù)緩存要點6:數(shù)據(jù)集市為了容易理解,本文用一個簡化的銷售模型來闡述,如下圖。圖1顯示了客戶、賣家、商品、定價、訂單的關(guān)系(這里省略支付、物流等其他元素)。圖1銷售模型在這個銷售模型中,賣家提供商品、制定價格,客戶選擇產(chǎn)品購買、形成銷售訂單。根據(jù)微服務(wù)的理念設(shè)計,可以劃分為客戶服務(wù)、賣家服務(wù)、商品服務(wù)、定價服務(wù)、訂單服務(wù),以及公共服務(wù)(比如認(rèn)證、權(quán)限、通知等),如圖2所示。圖2微服務(wù)功能微服務(wù)架構(gòu)中的多層數(shù)據(jù)架構(gòu)設(shè)計分布式架構(gòu)一般把系統(tǒng)分為Saas(Software-as-a-Service)、Paas(Platform-as-a-Service)、Iaas(InfrastructureasaService)三層。其中Saas層負(fù)責(zé)對外部提供業(yè)務(wù)服務(wù),Paas層提供基礎(chǔ)應(yīng)用平臺,Iaas層提供基礎(chǔ)設(shè)施。微服務(wù)垂直嵌入這三層服務(wù)之中,相互獨立。因此數(shù)據(jù)架構(gòu)設(shè)計時需要考慮三層服務(wù)對數(shù)據(jù)的關(guān)注點,又要考慮微服務(wù)的獨立性。數(shù)據(jù)架構(gòu)的分層設(shè)計圖3微服務(wù)技術(shù)框架如圖3所示,Iaas層提供程序運行的物理基礎(chǔ)環(huán)境(這邊涉及很多硬件·網(wǎng)絡(luò)內(nèi)容,在本文中省略)。Pass層細(xì)分為三層,基礎(chǔ)服務(wù)層,主要負(fù)責(zé)數(shù)據(jù)存儲處理;事務(wù)框架層,主要負(fù)責(zé)微服務(wù)的注冊·調(diào)度管理、分布式事務(wù)處理;應(yīng)用服務(wù)層、主要實現(xiàn)各個微服務(wù)的API,供其它微服務(wù)直接調(diào)用以及Saas層的服務(wù)調(diào)用。Saas服務(wù)就是公開對外提供的業(yè)務(wù)服務(wù)。全文中架構(gòu)技術(shù)運用到的知識點可以在群619881427免費獲取。感興趣的可以加入進來。數(shù)據(jù)架構(gòu)自下向上相應(yīng)的分為RawData層、LogicData(inner)層和LogicData(outer)層(Iaas中主要以基礎(chǔ)硬件環(huán)境為主,在本文中省略)。RawData層是基于數(shù)據(jù)庫、文件或者其他形式數(shù)據(jù)內(nèi)容。LogicData(inner)層是微服務(wù)API使用的邏輯數(shù)據(jù),比如客戶數(shù)據(jù)、訂單數(shù)據(jù)等等。LogicData(outer)層是對外服務(wù)提供數(shù)據(jù),比如客戶訂單數(shù)據(jù)。因此,我們的數(shù)據(jù)架構(gòu)的分層結(jié)果如圖4所示。圖4數(shù)據(jù)分層架構(gòu)除此之外,很多情報會以畫面或報表的形式展現(xiàn)出來。因此在LogicData(outer)之上,可以構(gòu)建InformationBlock(常用的信息塊)、通過Viewtype(顯示模式)的設(shè)定后,最終View展現(xiàn)出來。如圖4所示,越靠近對外服務(wù)層,客戶對設(shè)計者的影響度越大,越需要從使用性、易用性、適用性等考慮。反之,越遠(yuǎn)離對外服務(wù)層,設(shè)計上更關(guān)心數(shù)據(jù)的存儲。數(shù)據(jù)三層架構(gòu)的好處是實現(xiàn)數(shù)據(jù)從系統(tǒng)實現(xiàn)到業(yè)務(wù)實現(xiàn)的逐層過渡,實現(xiàn)業(yè)務(wù)數(shù)據(jù)和系統(tǒng)數(shù)據(jù)間的松耦合。同時實現(xiàn)業(yè)務(wù)的靈活擴展和系統(tǒng)的靈活擴展。數(shù)據(jù)架構(gòu)設(shè)計中的要點上面講述了數(shù)據(jù)架構(gòu)的分層設(shè)計,下面講述數(shù)據(jù)架構(gòu)設(shè)計中的要點。要點1:數(shù)據(jù)易用性數(shù)據(jù)無論用什么方式實現(xiàn),其最終目的都是為業(yè)務(wù)(或者是客戶)使用的。因此,在對外提供服務(wù)的時候,數(shù)據(jù)的易用性非常關(guān)鍵。圖5數(shù)據(jù)易用性如圖5所示,客戶信息在LogicData(inner)層中為了數(shù)據(jù)的柔軟性和非冗余,把人員信息拆成若干子表來存儲。比如,人員地址表可以無限多的存儲客戶地址信息。這樣的好處在于每次人員地址更新時,不用直接更新人員地址,而是生成一個新的地址數(shù)據(jù),原有的地址信息作為歷史數(shù)據(jù)得到保存,易于數(shù)據(jù)快速恢復(fù)和歷史信息追蹤。但在LogicData(outer)層提供外部數(shù)據(jù)的時候,首先考慮的是一次性能提供足夠用的信息(畢竟查詢的操作大大高于修改的操作),減少業(yè)務(wù)場景中不需要的信息。比如對一般客戶只提供三個常用地址的時候,數(shù)據(jù)設(shè)計中地址1、地址2和地址3放在一張表中。要點2:主、副數(shù)據(jù)及數(shù)據(jù)解耦每個微服務(wù)API的數(shù)據(jù)完全獨立是不太現(xiàn)實的,比如訂單中需要有商品、客戶(包括收貨者)、賣家以及價格等數(shù)據(jù)。如果這些數(shù)據(jù)都在訂單服務(wù)API中管理,那么客戶情報的變更、價格調(diào)整等信息都要同步給訂單API中數(shù)據(jù),數(shù)據(jù)的耦合度就會變得非常高。在數(shù)據(jù)設(shè)計的時候,需要考慮降低數(shù)據(jù)間的相互依賴性。因此,首先需要確定每個微服務(wù)API的主數(shù)據(jù)和副數(shù)據(jù)。主數(shù)據(jù)指微服務(wù)API的核心數(shù)據(jù),這種數(shù)據(jù)的增刪改主要集中在某個微服務(wù)API中,比如訂單服務(wù)API中的訂單數(shù)據(jù)。副數(shù)據(jù)指參照或者映射其他微服務(wù)API的數(shù)據(jù),比如訂單服務(wù)API中的商品數(shù)據(jù)、價格數(shù)據(jù)等。其次,為了降低數(shù)據(jù)之間的耦合度,用數(shù)據(jù)關(guān)聯(lián)表來表征數(shù)據(jù)間的關(guān)系。如果想去掉數(shù)據(jù)間的關(guān)聯(lián)關(guān)系,直接去掉關(guān)聯(lián)表即可,對數(shù)據(jù)本身的沒有任何影響。具體如圖6所示。圖6主、副數(shù)據(jù)及數(shù)據(jù)解耦要點3:分庫分表隨著業(yè)務(wù)數(shù)據(jù)量不斷增加,單一數(shù)據(jù)庫或單一數(shù)據(jù)表中會積累大量的數(shù)據(jù),比如訂單數(shù)據(jù),隨著時間推移和客戶數(shù)量的增加,產(chǎn)生的訂單數(shù)據(jù)也會越來越多。當(dāng)數(shù)據(jù)累積到一定程度后,數(shù)據(jù)操作的性能會大幅下降,也就是我們常說的數(shù)據(jù)庫“帶不動了”。所以,在數(shù)據(jù)架構(gòu)設(shè)計階段就應(yīng)該考慮數(shù)據(jù)的分庫分表。如圖7所示,分庫,即我們把訂單數(shù)據(jù)分為當(dāng)前數(shù)據(jù)應(yīng)用庫、歷史數(shù)據(jù)庫、歷史歸檔數(shù)據(jù)庫。當(dāng)前數(shù)據(jù)應(yīng)用庫用來支持新訂單的生成以及執(zhí)行中訂單的增刪改查。歷史數(shù)據(jù)庫(這里舉例分為最近3個月和最近1年)當(dāng)客戶想看過往訂單的時候才使用。歷史歸檔數(shù)據(jù)(按年間歸檔)原則上不直接對客戶公開,用于備查、統(tǒng)計分析。對于當(dāng)前數(shù)據(jù)應(yīng)用庫,可以繼續(xù)再分庫,按客戶號范圍來分庫。這樣每個數(shù)據(jù)庫的大小都能得到有效控制。分表,即把一條信息分別存儲在兩張或多張表中。比如把訂單信息按基本信息和詳細(xì)信息分表,就可以適用于訂單的基本信息查詢和訂單詳細(xì)信息查詢??傊?,分庫分表的核心就是控制單一數(shù)據(jù)庫的負(fù)荷(數(shù)據(jù)量和數(shù)據(jù)信息量),通過多表多庫來應(yīng)對業(yè)務(wù)數(shù)據(jù)量的增長。圖7分表分庫要點4:多源數(shù)據(jù)適配傳統(tǒng)的關(guān)系型數(shù)據(jù)庫之外,有多種多樣的數(shù)據(jù)源,比如圖像、聲音、視頻等多媒體數(shù)據(jù)文件或數(shù)據(jù)流,CSV、TXT、Doc、Excle、PDF、XML等各種異構(gòu)數(shù)。這些數(shù)據(jù)都需要做相應(yīng)的處理,轉(zhuǎn)換成可管理的數(shù)據(jù)信息。因此在數(shù)據(jù)架構(gòu)設(shè)計的時候,需要給不同性質(zhì)的數(shù)據(jù)源配置相對應(yīng)的讀寫適配器,同時也需要有統(tǒng)一調(diào)度的地方,如圖8所示。全文中架構(gòu)技術(shù)運用到的知識點可以在群619881427免費獲取。感興趣的可以加入進來。圖8多源數(shù)據(jù)適配要點5:多源數(shù)據(jù)緩存數(shù)據(jù)處理的性能除了處理邏輯的復(fù)雜度以外,還有很大一部分是目標(biāo)數(shù)據(jù)的操作時長(含對硬件磁盤設(shè)備的讀寫以及網(wǎng)絡(luò)的傳輸)。網(wǎng)絡(luò)速度特別是光纖的使用后已經(jīng)大幅度提高,但機器磁盤的讀寫效率并沒有顯著提高,因此減少磁盤讀寫是提高效率的一個重要途徑。數(shù)據(jù)緩存就是把常用的數(shù)據(jù)(不會經(jīng)常更改的數(shù)據(jù))、最近使用數(shù)據(jù)放到內(nèi)存中。這樣就可以大幅降低系統(tǒng)對硬件磁盤設(shè)備的操作開銷,提高整個數(shù)據(jù)系統(tǒng)的性能,如圖9所示。圖9數(shù)據(jù)緩存要點6:數(shù)據(jù)集市數(shù)據(jù)集市是一個很大的話題。當(dāng)現(xiàn)有的數(shù)據(jù)不能簡單地通過幾個表數(shù)據(jù)關(guān)聯(lián)以及簡單加工后就可以供業(yè)務(wù)使用的時候,就需要考慮構(gòu)建數(shù)據(jù)集市。數(shù)據(jù)集市以數(shù)據(jù)運用的觀點來分析加工數(shù)據(jù),通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 痛經(jīng)課件流程教學(xué)課件
- 手機原理課件教學(xué)課件
- 護士課件英語教學(xué)課件
- 公司機密保密協(xié)議
- 2024年市場營銷與協(xié)作合同
- 2024年城市供水管道鋪設(shè)工程承包合同
- 2024可再生能源發(fā)電并網(wǎng)服務(wù)合同
- 2024年婚姻外遇協(xié)議書
- 2024年《夏令營老師與營員心理輔導(dǎo)協(xié)議》心理輔導(dǎo)內(nèi)容與保密原則
- 2024年企業(yè)間產(chǎn)品生產(chǎn)與銷售合同
- 詩詞大會訓(xùn)練題庫十二宮格
- 困難職工幫扶救助申請表
- 機械設(shè)計課程設(shè)計說明書 11機電本 劉偉華
- 問卷1:匹茲堡睡眠質(zhì)量指數(shù)量表(PSQI)
- 大黃具有抗菌作用
- 高速鐵路橋涵工程橋上救援疏散通道施工方案
- 《企業(yè)水平衡測試通則》
- 《演講的肢體語言》PPT課件
- 研究一億有多大ppt課件
- 企業(yè)經(jīng)營狀況調(diào)查問卷
- -中醫(yī)養(yǎng)生健康講座活動方案
評論
0/150
提交評論