MongoDB存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)_第1頁
MongoDB存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)_第2頁
MongoDB存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)_第3頁
MongoDB存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)_第4頁
MongoDB存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、物聯(lián)網(wǎng)平臺MongoDB經(jīng)驗(yàn)分享MongoDB存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)MongoDB數(shù)據(jù)庫設(shè)計(jì)的幾個(gè)問題1、內(nèi)嵌還是引用?2、級聯(lián)查詢?3、調(diào)用時(shí)該用那種驅(qū)動(dòng)?毫無疑間 我做的餡餅 是全天下 最好吃的靈活帶來的 無序個(gè)人來到田納西、關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)(回顧)二、MongoDB數(shù)據(jù)庫設(shè)計(jì)三、程序調(diào)用模式選擇四、物聯(lián)網(wǎng)平臺(IOTNN)一、關(guān)系型數(shù)據(jù)庫(SQL)數(shù)據(jù)庫設(shè)計(jì)第范式第二范式第三范式追求的目標(biāo)到底是什么?面向?qū)ο笤O(shè)計(jì)引發(fā)的阻抗不匹配OO轉(zhuǎn)換到SQL1、許多業(yè)務(wù)邏輯采用存儲(chǔ)過程2、數(shù)據(jù)表字段一對象的屬性,只能處理簡單關(guān)系3、需要完成對象到SQL的轉(zhuǎn)換4、刪減字段時(shí)導(dǎo)致對象同步更新領(lǐng)域模型的 削足適履

2、ORM中的四種關(guān)系對對多多對多繼承關(guān)系主鍵相同 引用中間表多表/冗余字段域模型對象業(yè)務(wù)邏輯模型O/R映射持久化層關(guān)系型數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)層二、MongoDB數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)1、UML設(shè)計(jì)領(lǐng)域模型2、組合/聚合關(guān)系的合并3、繼承關(guān)系與對引用關(guān)系4、通過訪間方式/關(guān)聯(lián)更新考慮合并5、層級結(jié)構(gòu)的限制2.1、UML設(shè)計(jì) 領(lǐng)域模型2.2、組合/聚合關(guān)系的合井聚合組合組合大部分情況使用內(nèi)嵌聚合則考慮更新、文檔大小等間題,某些情況下可引入Simple對象文檔內(nèi)嵌局限性:文檔最大16M, 大數(shù)組性能欠佳Simple對象包含UUID的簡化字段關(guān)聯(lián)對象MongoDB對象存儲(chǔ),使我們可以不僅僅存儲(chǔ)個(gè)外鍵2.3、繼承關(guān)系與

3、一對一引用關(guān)系繼承關(guān)系,MongoDB文檔類型基本就不是間題對引用,UUID致即可個(gè)不是間題,個(gè)解決 方法照舊2.4、通過訪問方式、關(guān)聯(lián)更新考慮合井1、讀寫頻度的不致2、JSON傳輸角度2.5、層級結(jié)構(gòu)的限制更新操作時(shí)層級不宜過深,盡量避免條更新語句無法覆蓋的場景,或更新時(shí)需要更新大塊Block的場景。1、向父層遷移2、單獨(dú)成表,利用ObjectId相同的做法確保唯性三、程序調(diào)用模式Mapping模式HashMap模式3.1、Mapping模式-將字段映射成屬性優(yōu)點(diǎn):具備屬性檢查功能與傳統(tǒng)ORM認(rèn)知相符缺點(diǎn):增加許多類代碼當(dāng)模型改變時(shí),對應(yīng)的模型代碼需要改變結(jié)構(gòu)改變時(shí),舊有數(shù)據(jù)會(huì)影晌映射3.2

4、、HashMap模式-不做映射直接使用優(yōu)點(diǎn):缺點(diǎn):讀寫都是JSON,為 什么還要轉(zhuǎn)換?!3.3、Json Bson轉(zhuǎn)換問題ObjectIdDateTime四、物聯(lián)網(wǎng)平臺結(jié)構(gòu)物聯(lián)網(wǎng)業(yè)務(wù)邏輯的復(fù)雜程度應(yīng)該會(huì)超過互聯(lián)網(wǎng)因此接入后的應(yīng)用 的開發(fā)才是重點(diǎn)。需要開發(fā)設(shè)備應(yīng)用模塊。設(shè)備應(yīng)用模塊之間的組成應(yīng)遵循微服務(wù)的發(fā)布模式。微服務(wù)間調(diào)用應(yīng)該高并發(fā)、低耦合阿里云的升級模塊、 影子模塊應(yīng)該是可以 被用戶開發(fā)的!用消息訂閱,改變傳統(tǒng)調(diào)用模式微服務(wù)的易擴(kuò)展性高吞吐的批量消息處理用MongoDB作為設(shè)備模型的存儲(chǔ)文檔化存儲(chǔ)剛好符合不同類型設(shè)備屬性參數(shù)不同的特點(diǎn)多層級結(jié)構(gòu),也方便設(shè)備模型屬性的存儲(chǔ)4.1、物聯(lián)網(wǎng)微服務(wù)

5、結(jié)構(gòu)SaltStackPostOfficeNginxMintWiseMongoDBKafkaSparkKibana/ MariaDBZookeeperHadoopRedisGrafanaESDefaultAngler2 Angler1Matrix1Angler2 Angler3Matrix2Kubernetes4.2、抽象概念PostOffice:使用go語言開發(fā)的MQTT接入(WebSocket)Project:資源分配單元,用于共享資源Matrix:設(shè)備接入微服務(wù)的隔離Angler:基于消息隊(duì)列的微服務(wù)4.3、Postoffice設(shè)備Postoffic eMQAngler4.4、Mint健康檢查模塊通過向Angler的Topic發(fā)送心跳幀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論