版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、MongoDB存儲(chǔ)服務(wù)方案設(shè)計(jì)2012-03-14目錄1.需求分析31.1 客車平臺(tái)和貨運(yùn)平臺(tái)現(xiàn)有需求31.2 現(xiàn)有平臺(tái)存儲(chǔ)服務(wù)上存在問題52.方案設(shè)計(jì)72.1 存儲(chǔ)服務(wù)方案設(shè)計(jì)目標(biāo)72.2 存儲(chǔ)方案設(shè)計(jì)細(xì)則7實(shí)時(shí)數(shù)據(jù)存儲(chǔ)設(shè)計(jì)7拍照數(shù)據(jù)存儲(chǔ)設(shè)計(jì)8歷史數(shù)據(jù)查詢?cè)O(shè)計(jì)9數(shù)據(jù)統(tǒng)計(jì)設(shè)計(jì)10拍照數(shù)據(jù)發(fā)布和查詢?cè)O(shè)計(jì)112.3 存儲(chǔ)服務(wù)業(yè)務(wù)流程框架設(shè)計(jì)113.方案部署架構(gòu)設(shè)計(jì)123.1 存儲(chǔ)服務(wù)(MongoDB)部署架構(gòu)規(guī)劃設(shè)計(jì)123.2 存儲(chǔ)服務(wù)(MongoDB)數(shù)據(jù)分片規(guī)劃設(shè)計(jì)143.3 存儲(chǔ)服務(wù)(MongoDB)實(shí)例部署規(guī)劃設(shè)計(jì)143.4 存儲(chǔ)服務(wù)(MongoDB)服務(wù)器硬件、網(wǎng)絡(luò)和操作系統(tǒng)規(guī)劃設(shè)計(jì)15
2、3.5 MongoDB版本規(guī)劃設(shè)計(jì)163.6 存儲(chǔ)服務(wù)(MongoDB)運(yùn)營監(jiān)控規(guī)劃設(shè)計(jì)164.方案實(shí)施174.1 實(shí)施步驟174.2 方案整體實(shí)施計(jì)劃17附件1: 存儲(chǔ)服務(wù)表(MongoDB Collection)結(jié)構(gòu)設(shè)計(jì)18附件2: 存儲(chǔ)服務(wù)(MongoDB)對(duì)外接口統(tǒng)一定義262.1更新類接口262.2 查詢類接口312.3 統(tǒng)計(jì)接口39附件3: 存儲(chǔ)服務(wù)(MongoDB)安裝部署說明413.1 安裝MongoDB413.2 MongoDB分片配置42分片服務(wù)器(sharding)配置42副本集(Replica Set)配置43啟動(dòng)并配置三臺(tái)Config Server43部署并配置三臺(tái)R
3、outing Server44命令行添加分片44GPS數(shù)據(jù)存儲(chǔ)服務(wù)方案設(shè)計(jì)1. 需求分析1.1 客車平臺(tái)和貨運(yùn)平臺(tái)現(xiàn)有需求1) 實(shí)時(shí)數(shù)據(jù)文件存儲(chǔ)類a. 實(shí)時(shí)軌跡數(shù)據(jù):傳統(tǒng)文件方式存儲(chǔ),一條軌跡150B,每天上報(bào)8640次,一天大約為1M;軌跡文件格式說明:偏移經(jīng)度: 偏移緯度: GPS時(shí)間: GPS 速度: 正北方向夾角: 車輛狀態(tài): 報(bào)警編碼:經(jīng)度:緯度:海拔:里程:累計(jì)油耗:發(fā)動(dòng)機(jī)運(yùn)行總時(shí)長:引擎轉(zhuǎn)速(發(fā)動(dòng)機(jī)轉(zhuǎn)速):位置基本信息狀態(tài)位:報(bào)區(qū)域/線路報(bào)警:冷卻液溫度:蓄電池電壓: 瞬時(shí)油耗: 行駛記錄儀速度: 機(jī)油壓力: 大氣壓力: 發(fā)動(dòng)機(jī)扭矩百分比: 車輛信號(hào)狀態(tài):系統(tǒng)時(shí)間rn特點(diǎn):數(shù)據(jù)頻
4、率高,數(shù)據(jù)量大。b. 實(shí)時(shí)報(bào)警數(shù)據(jù):傳統(tǒng)文件方式存儲(chǔ),一條報(bào)警100B,每天上報(bào)8640次,一天大約為800K;報(bào)警文件格式說明:報(bào)警編碼:偏移經(jīng)度: 偏移緯度:經(jīng)度:緯度:GPS時(shí)間: GPS 速度: 正北方向夾角:累計(jì)油耗: 里程: 報(bào)區(qū)域/線路報(bào)警: 海拔:系統(tǒng)時(shí)間rn特點(diǎn):數(shù)據(jù)頻率高,數(shù)據(jù)量大。c. 駕駛行為事件:傳統(tǒng)文件方式存儲(chǔ),一條駕駛行為事件100B,每天上報(bào)不固定,根據(jù)實(shí)際生產(chǎn)環(huán)境觀察,平均每天最大300K;特點(diǎn):數(shù)據(jù)頻率不高,數(shù)據(jù)量小。d. 發(fā)動(dòng)機(jī)負(fù)荷率:傳統(tǒng)文件方式存儲(chǔ),一條發(fā)動(dòng)機(jī)負(fù)荷率200B,每天上報(bào)360次,一天大約為80K;特點(diǎn):數(shù)據(jù)頻率不高,數(shù)據(jù)量小。e. 拍照數(shù)
5、據(jù),圖片文件,每天上報(bào)數(shù)據(jù)量不定特點(diǎn):數(shù)據(jù)頻率不高,數(shù)據(jù)量小。f. 盲區(qū)補(bǔ)傳軌跡文件:軌跡文件統(tǒng)計(jì)最大數(shù),這里不做統(tǒng)計(jì);g. 盲區(qū)補(bǔ)傳報(bào)警文件:報(bào)警文件統(tǒng)計(jì)最大數(shù),這里不做統(tǒng)計(jì);2) 實(shí)時(shí)數(shù)據(jù)傳統(tǒng)數(shù)據(jù)庫存儲(chǔ)類Oracle數(shù)據(jù)庫存儲(chǔ)A 存儲(chǔ)非法軌跡位置;B 更新車輛最后位置;C 存儲(chǔ)、更新車輛上下線;D存儲(chǔ)、更新車輛報(bào)警;MYSQL數(shù)據(jù)庫存儲(chǔ)A 更新車輛最后位置B存儲(chǔ)、更新車輛報(bào)警3)操作指令傳統(tǒng)數(shù)據(jù)庫類Oracle數(shù)據(jù)庫存儲(chǔ)A. 存儲(chǔ)、更新下行指令,建議放在MongoDB中,用 Capped Collection來存放。B. 存儲(chǔ)車輛多媒體事件C. 存儲(chǔ)車輛多媒體信息D. 存儲(chǔ)車輛注
6、冊(cè),建議放在Oracle數(shù)據(jù)庫中。E. 存儲(chǔ)車輛鑒權(quán),建議放在Oracle數(shù)據(jù)庫中,同步到redis中供鑒權(quán)服務(wù)用。F. 存儲(chǔ)車輛注銷,建議放在Oracle數(shù)據(jù)庫中。G. 存儲(chǔ)車輛事件報(bào)告H. 存儲(chǔ)車輛信息點(diǎn)播,建議放在Oracle數(shù)據(jù)庫中。I. 存儲(chǔ)車輛電子運(yùn)單,建議放在Oracle數(shù)據(jù)庫中。J. 存儲(chǔ)車輛駕駛員信息,建議放在Oracle數(shù)據(jù)庫中,同步到redis,防止二次訪問數(shù)據(jù)庫。K. 存儲(chǔ)車輛行駛記錄儀信息,建議放在Oracle數(shù)據(jù)庫中。L. 存儲(chǔ)、更新車輛調(diào)度信息,建議放在Oracle數(shù)據(jù)庫中。M. 更新車輛照片信息N. 更新終端參數(shù)信息O. 更新路線信息,建議放在Oracle數(shù)據(jù)庫
7、中。P. 更新電子圍欄,建議放在Oracle數(shù)據(jù)庫中。Q. 存儲(chǔ)、更新終端參數(shù)設(shè)置,建議放在Oracle數(shù)據(jù)庫中。R. 更新終端版本號(hào),建議放在Oracle數(shù)據(jù)庫中。S. 存儲(chǔ)多媒體數(shù)據(jù)檢索T. 存儲(chǔ)上行透傳信息U. 存儲(chǔ)數(shù)據(jù)壓縮透傳V. 更新提問應(yīng)答MYSQL數(shù)據(jù)庫存儲(chǔ):A. 存儲(chǔ)、更新下行指令,建議廢棄MySQL,用redis來替代。B. 存儲(chǔ)車輛多媒體信息,建議廢棄MySQL,用redis來替代。4)歷史數(shù)據(jù)查詢統(tǒng)計(jì)類A. 軌跡回放條件:GPS時(shí)間(開始時(shí)間、接收時(shí)間)、VID;B. 區(qū)域查車(當(dāng)前區(qū)域內(nèi)車輛)條件:車輛類型、車輛速度、是否報(bào)警;C. 區(qū)域協(xié)查(歷史區(qū)域內(nèi)車輛)條件:GP
8、S時(shí)間;D. 歷史報(bào)警條件:類型、狀態(tài)、時(shí)間;1.2 現(xiàn)有平臺(tái)存儲(chǔ)服務(wù)上存在問題1) 盲區(qū)補(bǔ)傳數(shù)據(jù)分離問題;2) 跨多天歷史軌跡查詢的問題;3) 報(bào)警數(shù)據(jù)和GPS實(shí)時(shí)數(shù)據(jù)分離的問題;4) 區(qū)域查車、區(qū)域協(xié)查的準(zhǔn)確性和計(jì)算效率問題;5) 報(bào)警數(shù)據(jù)、CAN總線數(shù)據(jù)統(tǒng)計(jì)分析問題,MongoDB提供MapReduce(一個(gè)大規(guī)模數(shù)據(jù)并行計(jì)算技術(shù),源于google)服務(wù)來進(jìn)行統(tǒng)計(jì)分析;6) 拍照數(shù)據(jù)問題(統(tǒng)一管理,方便訪問);7) 業(yè)務(wù)流程、數(shù)據(jù)流程合理性問題;8) 設(shè)計(jì)質(zhì)量問題,如下:3|165694816606456724140420020120312/172641|1656942366064545
9、24141519920120312/1726429) 集群、負(fù)載均衡問題;10) 高可用性問題(在線擴(kuò)容、故障轉(zhuǎn)移);11) 運(yùn)營監(jiān)控問題(存儲(chǔ)實(shí)例監(jiān)控);2. 方案設(shè)計(jì)2.1 存儲(chǔ)服務(wù)方案設(shè)計(jì)目標(biāo)利用MongoDB來一體化解決GPS實(shí)時(shí)數(shù)據(jù)(高并發(fā))存儲(chǔ)和相關(guān)的查詢統(tǒng)計(jì)業(yè)務(wù)(如歷史軌跡查詢),并解決存儲(chǔ)服務(wù)的長期運(yùn)營的高可用性問題。具體包括:A. 解決GPS實(shí)時(shí)位置信息存儲(chǔ)問題(高并發(fā)寫、高速查詢、高速統(tǒng)計(jì)分析);B. 解決GPS報(bào)警數(shù)據(jù)存儲(chǔ)問題(高并發(fā)寫、高速查詢、統(tǒng)計(jì)分析);C. 解決司機(jī)駕駛行為數(shù)據(jù)存儲(chǔ)問題(高并發(fā)寫、高速查詢、統(tǒng)計(jì)分析);D. 解決拍照數(shù)據(jù)存儲(chǔ)問題(高并發(fā)寫、自動(dòng)發(fā)布
10、、高速查詢);E. 解決區(qū)域查車、區(qū)域協(xié)查等運(yùn)算量大的業(yè)務(wù)統(tǒng)計(jì)問題;F. 解決存儲(chǔ)服務(wù)高可用性問題(如負(fù)載均衡、線性擴(kuò)容、故障轉(zhuǎn)移、災(zāi)備恢復(fù)、服務(wù)監(jiān)控等);最終目標(biāo):簡化現(xiàn)有平臺(tái)業(yè)務(wù)流程,減少故障節(jié)點(diǎn),提高存儲(chǔ)服務(wù)的高可用性。2.2 存儲(chǔ)方案設(shè)計(jì)細(xì)則針對(duì)GPS實(shí)時(shí)數(shù)據(jù)存儲(chǔ),存儲(chǔ)服務(wù)提供C/C+客戶端接口,供通信系統(tǒng)調(diào)用,可以直接把GPS數(shù)據(jù)存放在MongoDB中,而調(diào)用者無需關(guān)系MongoDB的性能和負(fù)載問題。MongoDB采用目前通用的JSON格式,并提供JSON格式的解析和組裝包,支持C/C+、Java、JavaScript、Flex等眾多主流開發(fā)語言,方便平臺(tái)各層面來使用。針對(duì)Mongo
11、DB的數(shù)據(jù)格式特點(diǎn),我們把GPS實(shí)時(shí)數(shù)據(jù)格式定義為標(biāo)準(zhǔn)JSON格式,其定義如下:1) GPS實(shí)時(shí)數(shù)據(jù)格式定義詳見“附件1“ 和 ”附件2“相關(guān)定義。 2) 司機(jī)駕駛行為數(shù)據(jù)司機(jī)駕駛行為現(xiàn)有平臺(tái)的數(shù)據(jù)格式:駕駛行為類型|起始位置緯度起始位置經(jīng)度起始位置高度起始位置速度起始位置方向起始位置時(shí)間|結(jié)束位置緯度結(jié)束位置經(jīng)度結(jié)束位置高度結(jié)束位置速度結(jié)束位置方向結(jié)束位置時(shí)間。具體數(shù)據(jù)樣例:3|165694816606456724140420020120312/172641|165694236606454524141519920120312/172642。3) 發(fā)動(dòng)機(jī)負(fù)荷率數(shù)據(jù)格式:無固定格式(BASE64
12、后得到)具體數(shù)據(jù):MongoDB數(shù)據(jù)庫格式定義(JSON)"VID" : 311,"TS" : ISODate("2012-02-17T14:22:46.777Z"), "DAT" :“”JSON格式說明:車輛編號(hào)(VID)、時(shí)間戳(DS)、負(fù)荷數(shù)據(jù)(DAT)。 MongoDB提供GridFS特性,用來存儲(chǔ)大文件,如圖片文件和視頻文件。由通信平臺(tái)產(chǎn)生的有效拍照?qǐng)D片,可以連同屬性信息(如車機(jī)ID、時(shí)間戳、圖片ID、訪問路徑(http)一起直接存儲(chǔ)在MongoDB中,方便前端應(yīng)用查詢。MongoDB數(shù)據(jù)庫格式定義(JS
13、ON)"VID" : 311,"TS" : ISODate("2012-02-17T14:22:46.777Z"), “FID”: “file1”,“HP”: “”,"DAT" :“00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”J
14、SON格式說明:車輛編號(hào)(VID)、時(shí)間戳(DS)、文件名(FID)、發(fā)布路徑(HP)、圖片數(shù)據(jù)(DAT)。GPS數(shù)據(jù)查詢主要包括:實(shí)時(shí)數(shù)據(jù)查詢和歷史數(shù)據(jù)查詢。為解決海量GPS數(shù)據(jù)查詢的效率和并發(fā)負(fù)載問題,在設(shè)計(jì)時(shí)考慮從3各方面來設(shè)計(jì)和優(yōu)化:1) 創(chuàng)建數(shù)據(jù)索引MongoDB支持對(duì)數(shù)據(jù)進(jìn)行索引,即可在設(shè)計(jì)之初就設(shè)計(jì)好索引,也可在運(yùn)營期間來對(duì)數(shù)據(jù)的索引進(jìn)行調(diào)整,建議在采用前者。針對(duì)歷史軌跡數(shù)據(jù)的查詢需求條件:車機(jī)ID,起止時(shí)間,可以對(duì)“VID”、“TS”字段創(chuàng)建索引,來提高GPS歷史軌跡數(shù)據(jù)的查詢效率。針對(duì)報(bào)警查詢查詢需求:起止時(shí)間和報(bào)警狀態(tài),可以對(duì)“TS”字段、“VS”字段創(chuàng)建索引。2) 數(shù)據(jù)讀
15、寫分離和負(fù)載均衡設(shè)計(jì)在MongoDB服務(wù)部署方案中,我們采用多服務(wù)器集群,讀寫分離的部署架構(gòu),即通過部署多個(gè)寫服務(wù)和多個(gè)讀服務(wù),來解決GPS數(shù)據(jù)存儲(chǔ)的效率和服務(wù)可靠性、可擴(kuò)展性問題。3) 內(nèi)存數(shù)據(jù)MongoDB為提高數(shù)據(jù)查詢的效率,也采用了內(nèi)存機(jī)制,把大量的熱點(diǎn)數(shù)據(jù)放在內(nèi)存中,來提高數(shù)據(jù)查詢的命中率,我們可以利用這個(gè)特性來滿足車輛位置查詢的需求。4) GPS數(shù)據(jù)查詢接口設(shè)計(jì)a.車輛位置查詢接口提供查詢車輛最新位置信息,查詢條件為車輛ID,具體實(shí)現(xiàn)主要是通過MongoDB的緩存機(jī)制來完成??商峁㎎ava和JavaScript接口,供上層應(yīng)用調(diào)用。注:此處與實(shí)時(shí)服務(wù)的功能有些重復(fù),建議由實(shí)時(shí)服務(wù)來
16、統(tǒng)一提供。b.歷史軌跡查詢接口設(shè)計(jì)提供查詢每輛車的歷史軌跡數(shù)據(jù),查詢條件為:車輛ID、開始時(shí)間、結(jié)束時(shí)間。返回集應(yīng)包含去除除Can總線后的數(shù)據(jù)??商峁㎎ava和JavaScript接口,供上層應(yīng)用調(diào)用。注:查詢返回的數(shù)據(jù)集結(jié)果盡量簡潔,針對(duì)每類業(yè)務(wù)要求的訪問,不必要的信息要剔除掉,減少網(wǎng)絡(luò)壓力、提高查詢效率。c報(bào)警數(shù)據(jù)查詢1) 快照功能提供查詢某個(gè)區(qū)域內(nèi)、某段時(shí)間、都有哪些車輛,查詢條件為。提供查詢某個(gè)區(qū)域內(nèi)、某段時(shí)間、都有哪些類型的報(bào)警車輛。2) 報(bào)警統(tǒng)計(jì)可以按報(bào)警類別來統(tǒng)計(jì)某個(gè)時(shí)間段內(nèi)都有哪些報(bào)警車輛??梢越y(tǒng)計(jì)某輛車在某段時(shí)間內(nèi)的報(bào)警次數(shù)統(tǒng)計(jì),可按總計(jì)、按報(bào)警類別來統(tǒng)計(jì)。通過MongoDB
17、的插件,與Nginx應(yīng)用服務(wù)代理集成,可以直接把存儲(chǔ)在MongoDB中的數(shù)據(jù)發(fā)布成Http圖片服務(wù),供Web應(yīng)用層調(diào)用。在具體應(yīng)用中的業(yè)務(wù)流程如下:方案說明:A. 解決圖片文件儲(chǔ)存儲(chǔ)分布的問題,可以利用MongoDB把gps數(shù)據(jù)、圖片數(shù)據(jù)、視頻數(shù)據(jù)等都存儲(chǔ)在一起,方便管理和維護(hù);B. 解決圖片文件便利訪問的問題,如文件的屬性,文件的存儲(chǔ),文件的訪問路徑都作為一條記錄存儲(chǔ)在MongoDB中,方便上層應(yīng)用獲取;C. 解決圖片高效訪問的問題,如利用Nginx解決圖片資源并發(fā)訪問的問題,利用Squid/Varnishd緩存服務(wù)來解決二次訪問MongoDB的問題;2.3 存儲(chǔ)服務(wù)業(yè)務(wù)流程框架設(shè)計(jì)Mong
18、oDB存儲(chǔ)服務(wù)提供C+/C#接口、Java接口和JavaScript接口,分別為通訊層、服務(wù)層和應(yīng)用層提供存儲(chǔ)服務(wù)。3. 方案部署架構(gòu)設(shè)計(jì)3.1 存儲(chǔ)服務(wù)(MongoDB)部署架構(gòu)規(guī)劃設(shè)計(jì)為保證MongoDB的高可用性(高并發(fā)、高可擴(kuò)展性、高穩(wěn)定性),我們采用了Replica Set + Sharding部署架構(gòu),這是一種可以水平擴(kuò)展的模式,在數(shù)據(jù)量很大時(shí)特給力,實(shí)際大規(guī)模應(yīng)用一般會(huì)采用這種架構(gòu)去構(gòu)建MongoDB存儲(chǔ)系統(tǒng)。MongoDB存儲(chǔ)服務(wù)方案部署架構(gòu)設(shè)計(jì),如下圖所示:MongoDB存儲(chǔ)服務(wù)集群架構(gòu)設(shè)計(jì)架構(gòu)圖說明:A. 分片cluster:分別在3臺(tái)服務(wù)器(見上圖Server-1,Ser
19、ver-3,Server-5)運(yùn)行一個(gè)mongod實(shí)例(見上圖mongod shard_11,mongod shard_21,mongod shard_31)。B. 副本集:分別在3臺(tái)服務(wù)器(見上圖Server-2,Server-4,Server-6)運(yùn)行一個(gè)mongod實(shí)例(稱為mongod shard12,mongod shard22,mongod shard32),其中:n Server-2的mongod shard12是Server-2的mongod shard_11的副本。n Server-4的mongod shard22是Server-2的mongod shard_21的副本。n
20、Server-2的mongod shard31是Server-2的mongod shard_31的副本。C. 2臺(tái)服務(wù)器,每臺(tái)服務(wù)器(見上圖Server-1、Server-3)運(yùn)行一個(gè)mongod實(shí)例,作為2個(gè)config,其作用是config雙機(jī)熱備。D. 3臺(tái)服務(wù)器,每臺(tái)服務(wù)器(見上圖Server-2,Server-4,Server-6)運(yùn)行一個(gè)mongos路由進(jìn)程,用于客戶端連接。E線性擴(kuò)展:可以同時(shí)增加2臺(tái)服務(wù)器(見上圖Server-5、Server-6),其一個(gè)作為分片,另一個(gè)作為分片的副本和路由。備注說明:1)mongod實(shí)例 : 用于存儲(chǔ)實(shí)際的數(shù)據(jù)塊,實(shí)際生產(chǎn)環(huán)境中一個(gè)shard
21、 server角色可由幾臺(tái)服務(wù)器組個(gè)一個(gè)relica set承擔(dān),防止主機(jī)單點(diǎn)故障。2)Config Server存儲(chǔ)分片集群的的元數(shù)據(jù),其中包括在每個(gè)mongod實(shí)例的基本信息和塊信息。每個(gè)配置服務(wù)器所有塊的元數(shù)據(jù)的副本。通過兩次提交來確保在配置服務(wù)器信息與塊數(shù)據(jù)的一致性。3)mongos 可以被看作是一個(gè)數(shù)據(jù)和請(qǐng)求分發(fā)的中心,使單一的mongod實(shí)例組成互相關(guān)聯(lián)的集群。當(dāng)接收客戶端請(qǐng)求, mongos根據(jù)Config Server路由到相應(yīng)的mongod實(shí)例(可能是一組mongod),處理并返回結(jié)果。mongos 進(jìn)程沒有持久狀態(tài),在mongos啟動(dòng)時(shí)和配置服務(wù)器建立連接并獲取狀態(tài),當(dāng)配置
22、服務(wù)器發(fā)生任何變化時(shí),會(huì)將之傳播到每個(gè)mongos 進(jìn)程。3.2 存儲(chǔ)服務(wù)(MongoDB)數(shù)據(jù)分片規(guī)劃設(shè)計(jì)1)什么叫分片以及分片的作用?數(shù)據(jù)分割以及在不同機(jī)器存儲(chǔ)數(shù)據(jù)的過程稱之為分片。通過在多臺(tái)機(jī)器上分割數(shù)據(jù),使得數(shù)據(jù)庫系統(tǒng)能存儲(chǔ)更多的數(shù)據(jù),和處理更多的負(fù)載,在此過程中不需要更多更強(qiáng)大的機(jī)器。MongoDB分片的基本概念是分割集群成更小的塊,或是文檔。這些分檔可以分布于很多的shards,這樣每個(gè)shard負(fù)載總數(shù)據(jù)集得子集。舉個(gè)例子,思考一下。當(dāng)你從集合選擇一個(gè)key安裝分片時(shí),并使用key分割數(shù)據(jù)。這個(gè)key稱為shard key。假設(shè)你有一個(gè)聯(lián)系人的集合。如果我們選擇“姓”作為shar
23、d key,那么一個(gè)分片可以存儲(chǔ)“姓”以A-F開頭的,下一個(gè)分片可以存儲(chǔ)“姓”以G-P開頭的,最后一個(gè)分片存儲(chǔ)“姓”以Q-Z開頭的。當(dāng)你添加和刪除分片時(shí),MongoDB會(huì)重新做數(shù)據(jù)的負(fù)載,這樣每個(gè)分片會(huì)獲取一定量的流量和實(shí)際量的數(shù)據(jù)。所以在決定什么開始分片呢?考慮一下幾個(gè)因素:l 目前的機(jī)器的磁盤什么時(shí)候用完;l 希望比單一的mongod處理速度更快;l 希望在內(nèi)存中保留更多的數(shù)據(jù)以改善性能;3.3 存儲(chǔ)服務(wù)(MongoDB)實(shí)例部署規(guī)劃設(shè)計(jì)由于本方案是:規(guī)劃用4到6臺(tái)服務(wù)器,多個(gè)MongoDB(6個(gè)mongod實(shí)例、2個(gè)config實(shí)例、3各mongos實(shí)例)實(shí)例同時(shí)運(yùn)行在這些服務(wù)器上,所以
24、在部署前需要先規(guī)劃好服務(wù)器的IP地址、實(shí)例的名稱、實(shí)例的分布(在那臺(tái)服務(wù)器上)、實(shí)例的端口等,然后再實(shí)施。本方案的MongoDB數(shù)據(jù)庫實(shí)例部署規(guī)劃如下表所示:主機(jī) IP服務(wù)名及端口Server_1=“mongodb01”(內(nèi)網(wǎng))(外網(wǎng))mongod shard_11:27017mongod config_1:20000Server_2 = “mongodb02”(內(nèi)網(wǎng))(外網(wǎng))mongod shard_12:27018mongos_1:30000Server_3 = “mongodb03”192.168.5.
25、3(內(nèi)網(wǎng))(外網(wǎng))mongod shard_21:27017mongod config_2:20000Server_4 =“mongodb04”(內(nèi)網(wǎng))(外網(wǎng))mongod shard_22:27018mongos_2:30000Server_5=“mongodb05”(內(nèi)網(wǎng))(外網(wǎng))mongod shard_31:27017Server_6=”mongodb06”(內(nèi)網(wǎng))(外網(wǎng))mongod shard_32:27018mongos_3:300003.4 存儲(chǔ)服務(wù)
26、(MongoDB)服務(wù)器硬件、網(wǎng)絡(luò)和操作系統(tǒng)規(guī)劃設(shè)計(jì)1)服務(wù)器硬件規(guī)劃要求服務(wù)器內(nèi)存:至少16G,32G標(biāo)配,越大越好。硬盤存儲(chǔ)空間:1T以上,非RAID格式,越大越好。注:不建議用磁盤陣列。服務(wù)器CPU:至少4核以上,標(biāo)配8核,核越多越好CPU。網(wǎng)卡:千兆網(wǎng)卡,雙網(wǎng)卡;2)網(wǎng)絡(luò)規(guī)劃要求MongoDB服務(wù)器集群在一個(gè)獨(dú)立的網(wǎng)段內(nèi)。集群服務(wù)器用千兆交換機(jī)連接。3)操作系統(tǒng)RED HAD Linux 64位企業(yè)版操作系統(tǒng),支持中文字符編碼。A關(guān)閉文件系統(tǒng)/分區(qū)的atime 選項(xiàng)Vi /etc/fstab在對(duì)應(yīng)的分區(qū)項(xiàng)后面添加noatime ,nodiratimeLABEL=/1 / ext3 de
27、faults 1 1LABEL=/data1 /data ext4 defaults,noatime,nodiratime 1 2B.設(shè)置文件句柄,目前該配置已經(jīng)集成到啟動(dòng)腳本中。vi /etc/security/limit.conf* soft nproc 65536* hard nproc 65536* soft nofile 65536* hard nofile 65536C.不要使用large vm page (不要使用大內(nèi)存頁選項(xiàng))Linux 大內(nèi)存頁參考:D.用dmesg 查看主機(jī)的信息。E.linux 文件系統(tǒng)的選擇Mongodb 采用預(yù)分配的大文件來存儲(chǔ)數(shù)據(jù),我們推薦:ext3
28、,xfs.F.Linux系統(tǒng)內(nèi)核版本G線程堆棧的尺寸默認(rèn)的線程堆棧尺寸為10M,調(diào)整為1M,已經(jīng)集成在啟動(dòng)腳本中。3.5 MongoDB版本規(guī)劃設(shè)計(jì)注:偶數(shù)的版本是穩(wěn)定版,奇數(shù)是開發(fā)版,。3.6 存儲(chǔ)服務(wù)(MongoDB)運(yùn)營監(jiān)控規(guī)劃設(shè)計(jì)4. 方案實(shí)施4.1 實(shí)施步驟1) 方案設(shè)計(jì)2) 方案評(píng)審3) 設(shè)計(jì)驗(yàn)證4) 結(jié)論評(píng)估5) 上線實(shí)施4.2 方案整體實(shí)施計(jì)劃附件1: 存儲(chǔ)服務(wù)表(MongoDB Collection)結(jié)構(gòu)設(shè)計(jì)1. GPS實(shí)時(shí)數(shù)據(jù)存儲(chǔ)集合(表)結(jié)構(gòu)定義表名:gps_his_infos。作用:用于存儲(chǔ)車機(jī)實(shí)時(shí)上傳GPS數(shù)據(jù),并供前端應(yīng)用查詢和統(tǒng)計(jì)。具體表結(jié)構(gòu)信息如下所示:編號(hào)字段
29、名稱中文對(duì)照別名字段類型是否索引備注1VID車輛IDA整數(shù)是2TSGPS時(shí)間B整數(shù)是不包含時(shí)區(qū)3LON經(jīng)度C整數(shù)是偏移后的4LAT緯度D整數(shù)是偏移后的5SP速度E整數(shù)6DIR方向F整數(shù)7ALT海拔高度G整數(shù)8VS車輛狀態(tài)G整數(shù)9AC報(bào)警編碼H報(bào)警編碼子集合9.1S1緊急報(bào)警S1整數(shù)9.2S2超速報(bào)警S2整數(shù)9.3S3疲勞駕駛S3整數(shù)9.4S4預(yù)警S4整數(shù)9.5S5導(dǎo)航模塊故障S5整數(shù)9.6S6導(dǎo)航系統(tǒng)天線未接S6整數(shù)9.7S7導(dǎo)航天線短路S7整數(shù)9.8S8終端主電源欠壓S8整數(shù)9.9S9終端主電源掉電S9整數(shù)9.10S10終端顯示屏故障S10整數(shù)9.11S11語音模塊故障S11整數(shù)9.12S1
30、2攝像頭故障S12整數(shù)9.13S13當(dāng)天累計(jì)駕駛超時(shí)S13整數(shù)9.14S14超時(shí)停車S14整數(shù)9.15S15進(jìn)出區(qū)域S15整數(shù)9.16S16進(jìn)出路線S16整數(shù)9.17S17路線行駛時(shí)間不足/過長S17整數(shù)9.18S18路線偏移報(bào)警S18整數(shù)9.19S19車輛速度傳感器故障S19整數(shù)9.20S20車輛油量異常S20整數(shù)9.21S21車輛被盜S21整數(shù)9.22S22車輛非法點(diǎn)火S22整數(shù)9.23S23車輛非法位移S23整數(shù)9.24S24碰撞側(cè)翻報(bào)警S24整數(shù)9.25S25嚴(yán)重故障S25整數(shù)9.26S26制動(dòng)氣壓報(bào)警S26整數(shù)9.27S27油壓報(bào)警S27整數(shù)9.28S28水位低報(bào)警S28整數(shù)9.29
31、S29制動(dòng)蹄片磨損報(bào)警S29整數(shù)9.30S30空濾堵塞報(bào)警S30整數(shù)9.31S31緩速器高溫報(bào)警信號(hào)S31整數(shù)9.32S32倉溫報(bào)警信號(hào)S32整數(shù)9.33S33機(jī)濾堵塞信號(hào)S33整數(shù)9.34S34燃油堵塞信號(hào)S34整數(shù)9.35S35機(jī)油溫度報(bào)警信號(hào)S35整數(shù)9.36S36燃油警告S36整數(shù)9.37S37空檔滑行告警S37整數(shù)9.38S38超長怠速告警S38整數(shù)9.39S39怠速空調(diào)告警S39整數(shù)9.40S40發(fā)動(dòng)機(jī)超轉(zhuǎn)告警S40整數(shù)9.41S41急加速報(bào)警S41整數(shù)9.42S42急減速報(bào)警S42整數(shù)9.43S43門開報(bào)警S43整數(shù)9.44S44冷卻液溫度過高報(bào)警S44整數(shù)9.45S45蓄電池電
32、壓報(bào)警S45整數(shù)9.46S46ABS故障告警S46整數(shù)9.47S47關(guān)鍵點(diǎn)報(bào)警S47整數(shù)10LO經(jīng)度I整數(shù)原始經(jīng)度11LA緯度J整數(shù)原始緯度12MIL里程L整數(shù)13TOW累計(jì)油耗M整數(shù)14ETT發(fā)動(dòng)機(jī)運(yùn)行時(shí)長N整數(shù)15ER引擎轉(zhuǎn)速O整數(shù)16LS位置狀態(tài)位P整數(shù)17ALS區(qū)域/線路報(bào)警Q字符串18CT冷卻液溫度R整數(shù)19SBV蓄電池電壓S整數(shù)20IOW瞬時(shí)油耗T整數(shù)21RSP記錄儀速度U整數(shù)22SD機(jī)油壓力V整數(shù)23AD大氣壓力W整數(shù)24ENP發(fā)動(dòng)機(jī)扭矩百分比X整數(shù)25DS車輛信號(hào)狀態(tài)Y整數(shù)26ST系統(tǒng)時(shí)間Z整數(shù)建議:為節(jié)省GPS實(shí)時(shí)數(shù)據(jù)的存儲(chǔ)空間,我們建議采用英文首字符縮寫方式來定義每個(gè)字段的
33、名稱,當(dāng)然也可以用a、b、c、d來表示每個(gè)字段的名稱,這樣的好處是節(jié)省存儲(chǔ)空間,缺點(diǎn)是可讀性差,但可以通過相關(guān)查詢接口函數(shù)還原數(shù)據(jù)項(xiàng)可讀性差的問題。2. GPS報(bào)警歷史數(shù)據(jù)存儲(chǔ)集合(表)結(jié)構(gòu)定義表名:alarm_his_infos。作用:用于車輛報(bào)警事件信息的集合(表),包括報(bào)警位置、報(bào)警時(shí)間、報(bào)警附加信息、報(bào)警處理信息等。具體表結(jié)構(gòu)信息如下所示:編號(hào)字段名稱中文對(duì)照別名字段類型是否索引備注1AID報(bào)警IDA整數(shù)是2VID車輛IDB整數(shù)是3VNO車牌號(hào)C字符串是4DID當(dāng)班司機(jī)編號(hào)D整數(shù)5STS報(bào)警開始時(shí)間E1整數(shù)是6SLON經(jīng)度(起始位置)F1整數(shù)偏移后的7SLAT緯度(起始位置)G1整數(shù)偏
34、移后的8SSP速度(起始位置)H1整數(shù)9SDIR方向(起始位置)I1整數(shù)10SALT海拔(起始位置)J1整數(shù)11SMIL里程(起始位置)K1整數(shù)12STOW累計(jì)油耗(起始位置)L1整數(shù)13ETS報(bào)警結(jié)束時(shí)間E2整數(shù)是14ELON經(jīng)度(結(jié)束位置)F2整數(shù)偏移后的15ELAT緯度(結(jié)束位置)G2整數(shù)偏移后的16ESP速度(結(jié)束位置)H2整數(shù)17EDIR方向(結(jié)束位置)I2整數(shù)18EALT海拔(結(jié)束位置)J2整數(shù)19EMIL里程(結(jié)束位置)K2整數(shù)20ETOW累計(jì)油耗(結(jié)束位置)L2整數(shù)21AT報(bào)警類型編碼M整數(shù)詳見報(bào)警編碼對(duì)照表22AS報(bào)警源N整數(shù)1:車載終端,2:企業(yè)監(jiān)控平臺(tái),3:政府監(jiān)管平臺(tái),
35、9:其它23BS基本狀態(tài)O1整數(shù)24ES擴(kuò)展?fàn)顟B(tài)O2整數(shù)25SAA報(bào)警附加信息(開始位置)P1字符串26EAA報(bào)警附加信息(結(jié)束位置)P2字符串27ATS報(bào)警時(shí)間/系統(tǒng)時(shí)間Q整數(shù)建議和系統(tǒng)時(shí)間合并28APS報(bào)警處理狀態(tài)R整數(shù)是-1:未處理;0:不作處理;1:將來處理;2:處理完畢29UID報(bào)警處理人S整數(shù)30APTS報(bào)警處理時(shí)間T整數(shù)是31TODO督辦狀態(tài)U整數(shù)0:未督辦;1:內(nèi)部督辦;2:監(jiān)管平臺(tái)督辦建議:為節(jié)省車輛報(bào)警數(shù)據(jù)的存儲(chǔ)空間,我們建議采用英文首字符縮寫方式來定義每個(gè)字段的名稱,當(dāng)然也可以用a、b、c、d來表示每個(gè)字段的名稱,這樣的好處是節(jié)省存儲(chǔ)空間,缺點(diǎn)是可讀性差,但可以通過相關(guān)查
36、詢接口函數(shù)還原數(shù)據(jù)項(xiàng)可讀性差的問題。注:(1)報(bào)警類型編碼對(duì)照表,如下表所示:報(bào)警類型報(bào)警編號(hào)緊急報(bào)警0超速報(bào)警1疲勞駕駛2預(yù)警3導(dǎo)航模塊故障4導(dǎo)航系統(tǒng)天線未接5導(dǎo)航天線短路6終端主電源欠壓7終端主電源掉電8終端顯示屏故障9語音模塊故障10攝像頭故障11當(dāng)天累計(jì)駕駛超時(shí)18超時(shí)停車19進(jìn)出區(qū)域20進(jìn)出路線21路線行駛時(shí)間不足/過長22路線偏移報(bào)警23車輛速度傳感器故障24車輛油量異常25車輛被盜26車輛非法點(diǎn)火27車輛非法位移28碰撞側(cè)翻報(bào)警29嚴(yán)重故障32制動(dòng)氣壓報(bào)警33油壓報(bào)警34水位低報(bào)警35制動(dòng)蹄片磨損報(bào)警36空濾堵塞報(bào)警37緩速器高溫報(bào)警信號(hào)38倉溫報(bào)警信號(hào)39機(jī)濾堵塞信號(hào)40燃油堵
37、塞信號(hào)41機(jī)油溫度報(bào)警信號(hào)42燃油警告43空檔滑行告警44超長怠速告警45怠速空調(diào)告警46發(fā)動(dòng)機(jī)超轉(zhuǎn)告警47急加速報(bào)警48急減速報(bào)警49門開報(bào)警50冷卻液溫度過高報(bào)警51蓄電池電壓報(bào)警52ABS故障告警53關(guān)鍵點(diǎn)報(bào)警220(2)報(bào)警附加信息編碼定義1.超速報(bào)警,格式:位置類型|區(qū)域或路段ID類型: 0:無特定位置;1:圓型區(qū)域;2:矩形區(qū)域;3:多邊形區(qū)域;4:路段 當(dāng)類型為0時(shí),無區(qū)域ID或路段ID值2.進(jìn)出區(qū)域/路段報(bào)警附加信息類型 ,格式:位置類型區(qū)域或線路ID方向 類型: 0:無特定位置;1:圓型區(qū)域;2:矩形區(qū)域;3:多邊形區(qū)域;4:路線方向: 0:進(jìn),1:出3.路線行駛時(shí)間不足/過
38、長, 格式: 路段ID路段行駛時(shí)間結(jié)果 結(jié)果: 0:不足,1:過長3. 司機(jī)駕駛行為事件存儲(chǔ)集合(表)結(jié)構(gòu)定義表名:driver_action_infos。作用:用于存儲(chǔ)司機(jī)駕駛行為數(shù)據(jù)的表。具體表結(jié)構(gòu)信息如下所示:編號(hào)字段名稱中文對(duì)照別名字段類型是否索引備注1VID車輛IDA整數(shù)是2AID駕駛行為類型B整數(shù)是詳見下表3STSGPS時(shí)間(起始位置)C整數(shù)是不包含時(shí)區(qū)4SLON經(jīng)度(起始位置)D整數(shù)偏移后的5SLAT緯度(起始位置)E整數(shù)偏移后的6SSP速度(起始位置)F整數(shù)7SALT海拔(起始位置)G整數(shù)8SDIR方向(起始位置)H整數(shù)9ETSGPS時(shí)間(結(jié)束位置)I整數(shù)是不包含時(shí)區(qū)10ELO
39、N經(jīng)度(結(jié)束位置)J整數(shù)偏移后的11ELAT緯度(結(jié)束位置)K整數(shù)偏移后的12ESP速度(結(jié)束位置)L整數(shù)13EALT海拔高度(結(jié)束位置)M整數(shù)14EDIR方向(結(jié)束位置)N整數(shù)15ST系統(tǒng)時(shí)間O整數(shù)注:駕駛行為類型定義 :駕駛行為類型行為編號(hào)加熱器工作1空調(diào)工作2發(fā)動(dòng)機(jī)超轉(zhuǎn)3過長怠速4超經(jīng)濟(jì)區(qū)運(yùn)行5空檔滑行6怠速空調(diào)7二檔起步8檔位不當(dāng)9超速10疲勞駕駛114. 發(fā)動(dòng)機(jī)負(fù)荷率存儲(chǔ)集合(表)結(jié)構(gòu)定義表名:engine_load_infos。作用:用于存儲(chǔ)車輛的發(fā)動(dòng)機(jī)負(fù)荷率數(shù)據(jù)的集合(表)。具體表結(jié)構(gòu)信息如下所示:編號(hào)字段名稱中文對(duì)照別名字段類型是否索引備注1VID車輛IDA整數(shù)是2TS時(shí)間C整
40、數(shù)是不包含時(shí)區(qū)3DAT負(fù)荷數(shù)據(jù)D字符串5. 拍照數(shù)據(jù)存儲(chǔ)集合(表)結(jié)構(gòu)定義表名:photo_infos。作用:用于存儲(chǔ)車輛的拍照?qǐng)D片數(shù)據(jù)的集合(表)。具體表結(jié)構(gòu)信息如下所示:編號(hào)字段名稱中文對(duì)照別名字段類型是否索引備注1VID車輛IDA整數(shù)是2TS拍照時(shí)間B整數(shù)是不包含時(shí)區(qū)3FN文件名C字符串4HP發(fā)布地址D字符串5DAT圖片E二進(jìn)制對(duì)象6. 上下行指令數(shù)據(jù)集合結(jié)構(gòu)定義表名:up_down_command_infos。作用:用于存儲(chǔ)車輛的拍照?qǐng)D片數(shù)據(jù)的集合(表)。具體表結(jié)構(gòu)信息如下所示:附件2: 存儲(chǔ)服務(wù)(MongoDB)對(duì)外接口統(tǒng)一定義存儲(chǔ)服務(wù)的對(duì)外統(tǒng)一接口分為3大類:更新類接口、查詢接口和
41、統(tǒng)計(jì)類接口。由于寫操作接口跟通信服務(wù)緊密相關(guān),所以優(yōu)先提供C+類型的接口。查詢和統(tǒng)計(jì)接口跟上層服務(wù)和應(yīng)用緊密相關(guān),所以提供Java類型的接口和JavaScript接口,這里優(yōu)先提供Java接口。2.1更新類接口1) GPS實(shí)時(shí)位置數(shù)據(jù)更新接口AGPS實(shí)時(shí)數(shù)據(jù)插入操作接口int insertGPS(BSONObj& gpsData);注:BSONObj為MongoDB C+客戶端驅(qū)動(dòng)的BSON數(shù)據(jù)的基本對(duì)象。gpsData參數(shù)的聲明類型為BSONObj其具體格式定義如下"A" : 1175, / 車輛ID“B” : ISODate("2012-02-17T1
42、4:22:46")/ GPS時(shí)間"C" : 69838489,/ 經(jīng)度"D" : 23946431,/ 緯度"E" : 59,/ 速度"F" : 234,/ 方向“G”: 1225,/ 海拔高度"VS" : / 車輛狀態(tài)子類(嵌套)“s1” : / 緊急報(bào)警“s2” : / 超速報(bào)警“s3” : / 疲勞駕駛“s4” : / 預(yù)警“s5” : / 導(dǎo)航模塊故障“s6” : / 導(dǎo)航系統(tǒng)天線未接“s7” : / 導(dǎo)航天線短路“s8” : / 終端主電源欠壓“s9” : / 終端主電源掉電
43、“s10” : / 終端顯示屏故障“s11” : / 語音模塊故障“s12” : / 攝像頭故障“s13” : / 當(dāng)天累計(jì)駕駛超時(shí)“s14” : / 超時(shí)停車“s15” : / 進(jìn)出區(qū)域“s16” : / 進(jìn)出路線“s17” : / 路線行駛時(shí)間不足/過長 “s18” : / 路線偏移報(bào)警“s19” : / 車輛速度傳感器故障“s20” : / 車輛油量異?!皊21” : / 車輛被盜“s22” : / 車輛非法點(diǎn)火“s23” : / 車輛非法位移“s24” : / 碰撞側(cè)翻報(bào)警“s25” : / 嚴(yán)重故障“s26” : / 制動(dòng)氣壓報(bào)警“s27” : / 油壓報(bào)警“s28” : / 水位低
44、報(bào)警“s29” : / 制動(dòng)蹄片磨損報(bào)警“s30” : / 空濾堵塞報(bào)警“s31” : / 緩速器高溫報(bào)警信號(hào)“s32” : / 倉溫報(bào)警信號(hào)“s33” : / 機(jī)濾堵塞信號(hào)“s34” : / 燃油堵塞信號(hào)“s35” : / 機(jī)油溫度報(bào)警信號(hào)“s36” : / 燃油警告“s37” : / 空檔滑行告警“s38” : / 超長怠速告警“s39” : / 怠速空調(diào)告警“s40” : / 發(fā)動(dòng)機(jī)超轉(zhuǎn)告警“s41” : / 急加速報(bào)警“s42” : / 急減速報(bào)警“s43” : / 門開報(bào)警“s44” : / 冷卻液溫度過高報(bào)警“s45” : / 蓄電池電壓報(bào)警“s47” : / ABS故障告警“s4
45、7” : / 關(guān)鍵點(diǎn)報(bào)警"H":395454,/ 經(jīng)度"I" : 1393444,/ 緯度“J” : 1243544,/ 海拔高度“K” : 235679087,/ 里程“L” : 2,/ 位置基本信息狀態(tài)位“M” : “區(qū)域、進(jìn)”,/ 區(qū)域/線路報(bào)警“N” : 55,/ 行駛記錄儀速度“O” : 2,/ 車輛信號(hào)狀態(tài)“P” : ISODate("2012-02-17T14:22:46"),/ 系統(tǒng)時(shí)間“CAN” : / CAN總線數(shù)據(jù)子類(嵌套)“c1” : 135,/ 累計(jì)油耗“c2” : 135,/ 發(fā)動(dòng)機(jī)運(yùn)行總時(shí)長“c3” :
46、 135,/ 引擎轉(zhuǎn)速“c4” : 135,/ 冷卻液溫度“c5” : 135,/ 蓄電池電壓“c6” : 135,/ 瞬時(shí)油耗“c7” : 135,/ 機(jī)油壓力“c8” : 135,/ 大氣壓力“c9” : 135,/ 發(fā)動(dòng)機(jī)扭矩百分比2) 車輛報(bào)警數(shù)據(jù)更新接口A.車輛報(bào)警數(shù)據(jù)插入操作接口int insertAlarmData(BSONObj& alarmData);alarmData參數(shù)的聲明類型為BSONObj其具體格式定義如下:"A" : 1175, / 車輛ID“B” : "京B126765"),/ 車牌號(hào)碼“C” : 3376,/ 當(dāng)班司機(jī)編號(hào)“P1” : / 報(bào)警開始位置信息(子類)“a1” : ISODate("2012-02-17T14:22:46")/ 報(bào)警開始時(shí)間(GPS時(shí)間)"a2" : 69838489,/ 經(jīng)度"a3" : 23946431,/ 緯度"a4" : 59,/ 速度"a5" : 234,/ 方向“a6”: 1225,/ 海拔高度&quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 細(xì)胞凋亡與骨關(guān)節(jié)炎
- 基于設(shè)計(jì)思維教學(xué)法的小學(xué)語文項(xiàng)目式學(xué)習(xí)理念與實(shí)踐模型
- 護(hù)理碩士研究生心理資本潛在剖面分析及與情緒幸福感的關(guān)系
- 國際志愿者日活動(dòng)策劃
- 湖南省張家界市桑植縣2024-2025學(xué)年七年級(jí)上學(xué)期道德與法治期末試卷(含答案)
- 第十八章 平行四邊形 評(píng)估測(cè)試卷(含答案)2024-2025學(xué)年數(shù)學(xué)人教版八年級(jí)下冊(cè)
- 二零二五年度房產(chǎn)共同債權(quán)債務(wù)處理離婚協(xié)議3篇
- 貴州盛華職業(yè)學(xué)院《影視欄目包裝專題設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州黔南科技學(xué)院《設(shè)計(jì)原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 新疆巴音郭楞蒙古自治州(2024年-2025年小學(xué)六年級(jí)語文)人教版課后作業(yè)(下學(xué)期)試卷及答案
- 英法核動(dòng)力裝置
- GB/T 41837-2022溫泉服務(wù)溫泉水質(zhì)要求
- YS/T 79-2006硬質(zhì)合金焊接刀片
- 考研考博-英語-山東師范大學(xué)押題密卷附帶答案詳解篇
- 實(shí)用性閱讀與交流任務(wù)群設(shè)計(jì)思路與教學(xué)建議
- 中醫(yī)診療器具清洗消毒(醫(yī)院感染防控專家課堂培訓(xùn)課件)
- 通風(fēng)設(shè)施標(biāo)準(zhǔn)
- 藥廠生產(chǎn)車間現(xiàn)場(chǎng)管理-PPT課件
- 軸與孔標(biāo)準(zhǔn)公差表
- 防火門施工方案
- 人教PEP版2022-2023六年級(jí)英語上冊(cè)期末試卷及答案(含聽力材料)
評(píng)論
0/150
提交評(píng)論