MongoDB存儲服務(wù)方案設(shè)計_第1頁
MongoDB存儲服務(wù)方案設(shè)計_第2頁
MongoDB存儲服務(wù)方案設(shè)計_第3頁
MongoDB存儲服務(wù)方案設(shè)計_第4頁
MongoDB存儲服務(wù)方案設(shè)計_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、mongodb存儲服務(wù)方案設(shè)計2012-03-14目錄1.需求分析31.1 客車平臺和貨運平臺現(xiàn)有需求31.2 現(xiàn)有平臺存儲服務(wù)上存在問題52.方案設(shè)計72.1 存儲服務(wù)方案設(shè)計目標(biāo)72.2 存儲方案設(shè)計細(xì)則72.2.1 gps實時數(shù)據(jù)存儲設(shè)計72.2.2 拍照數(shù)據(jù)存儲設(shè)計82.2.3 gps歷史數(shù)據(jù)查詢設(shè)計92.2.4 gps數(shù)據(jù)統(tǒng)計設(shè)計102.2.5 拍照數(shù)據(jù)發(fā)布和查詢設(shè)計112.3 存儲服務(wù)業(yè)務(wù)流程框架設(shè)計113.方案部署架構(gòu)設(shè)計123.1 存儲服務(wù)(mongodb)部署架構(gòu)規(guī)劃設(shè)計123.2 存儲服務(wù)(mongodb)數(shù)據(jù)分片規(guī)劃設(shè)計143.3 存儲服務(wù)(mongodb)實例部署規(guī)劃設(shè)

2、計143.4 存儲服務(wù)(mongodb)服務(wù)器硬件、網(wǎng)絡(luò)和操作系統(tǒng)規(guī)劃設(shè)計153.5 mongodb版本規(guī)劃設(shè)計163.6 存儲服務(wù)(mongodb)運營監(jiān)控規(guī)劃設(shè)計164.方案實施174.1 實施步驟174.2 方案整體實施計劃17附件1: 存儲服務(wù)表(mongodb collection)結(jié)構(gòu)設(shè)計18附件2: 存儲服務(wù)(mongodb)對外接口統(tǒng)一定義262.1更新類接口262.2 查詢類接口312.3 統(tǒng)計接口39附件3: 存儲服務(wù)(mongodb)安裝部署說明413.1 安裝mongodb413.2 mongodb分片配置423.2.1 分片服務(wù)器(sharding)配置423.2.2

3、 副本集(replica set)配置433.2.3 啟動并配置三臺config server433.2.4 部署并配置三臺routing server443.2.5 命令行添加分片44gps數(shù)據(jù)存儲服務(wù)方案設(shè)計1. 需求分析1.1 客車平臺和貨運平臺現(xiàn)有需求1) 實時數(shù)據(jù)文件存儲類a. 實時軌跡數(shù)據(jù):傳統(tǒng)文件方式存儲,一條軌跡150b,每天上報8640次,一天大約為1m;軌跡文件格式說明:偏移經(jīng)度: 偏移緯度: gps時間: gps 速度: 正北方向夾角: 車輛狀態(tài): 報警編碼:經(jīng)度:緯度:海拔:里程:累計油耗:發(fā)動機運行總時長:引擎轉(zhuǎn)速(發(fā)動機轉(zhuǎn)速):位置基本信息狀態(tài)位:報區(qū)域/線路報警:

4、冷卻液溫度:蓄電池電壓: 瞬時油耗: 行駛記錄儀速度: 機油壓力: 大氣壓力: 發(fā)動機扭矩百分比: 車輛信號狀態(tài):系統(tǒng)時間rn特點:數(shù)據(jù)頻率高,數(shù)據(jù)量大。b. 實時報警數(shù)據(jù):傳統(tǒng)文件方式存儲,一條報警100b,每天上報8640次,一天大約為800k;報警文件格式說明:報警編碼:偏移經(jīng)度: 偏移緯度:經(jīng)度:緯度:gps時間: gps 速度: 正北方向夾角:累計油耗: 里程: 報區(qū)域/線路報警: 海拔:系統(tǒng)時間rn特點:數(shù)據(jù)頻率高,數(shù)據(jù)量大。c. 駕駛行為事件:傳統(tǒng)文件方式存儲,一條駕駛行為事件100b,每天上報不固定,根據(jù)實際生產(chǎn)環(huán)境觀察,平均每天最大300k;特點:數(shù)據(jù)頻率不高,數(shù)據(jù)量小。d.

5、 發(fā)動機負(fù)荷率:傳統(tǒng)文件方式存儲,一條發(fā)動機負(fù)荷率200b,每天上報360次,一天大約為80k;特點:數(shù)據(jù)頻率不高,數(shù)據(jù)量小。e. 拍照數(shù)據(jù),圖片文件,每天上報數(shù)據(jù)量不定特點:數(shù)據(jù)頻率不高,數(shù)據(jù)量小。f. 盲區(qū)補傳軌跡文件:軌跡文件統(tǒng)計最大數(shù),這里不做統(tǒng)計;g. 盲區(qū)補傳報警文件:報警文件統(tǒng)計最大數(shù),這里不做統(tǒng)計;2) 實時數(shù)據(jù)傳統(tǒng)數(shù)據(jù)庫存儲類oracle數(shù)據(jù)庫存儲a 存儲非法軌跡位置;b 更新車輛最后位置;c 存儲、更新車輛上下線;d存儲、更新車輛報警;mysql數(shù)據(jù)庫存儲a 更新車輛最后位置b存儲、更新車輛報警3)操作指令傳統(tǒng)數(shù)據(jù)庫類oracle數(shù)據(jù)庫存儲a. 存儲、更新下行指令,建議放在

6、mongodb中,用capped collection來存放。b. 存儲車輛多媒體事件c. 存儲車輛多媒體信息d. 存儲車輛注冊,建議放在oracle數(shù)據(jù)庫中。e. 存儲車輛鑒權(quán),建議放在oracle數(shù)據(jù)庫中,同步到redis中供鑒權(quán)服務(wù)用。f. 存儲車輛注銷,建議放在oracle數(shù)據(jù)庫中。g. 存儲車輛事件報告h. 存儲車輛信息點播,建議放在oracle數(shù)據(jù)庫中。i. 存儲車輛電子運單,建議放在oracle數(shù)據(jù)庫中。j. 存儲車輛駕駛員信息,建議放在oracle數(shù)據(jù)庫中,同步到redis,防止二次訪問數(shù)據(jù)庫。k. 存儲車輛行駛記錄儀信息,建議放在oracle數(shù)據(jù)庫中。l. 存儲、更新車輛調(diào)度

7、信息,建議放在oracle數(shù)據(jù)庫中。m. 更新車輛照片信息n. 更新終端參數(shù)信息o. 更新路線信息,建議放在oracle數(shù)據(jù)庫中。p. 更新電子圍欄,建議放在oracle數(shù)據(jù)庫中。q. 存儲、更新終端參數(shù)設(shè)置,建議放在oracle數(shù)據(jù)庫中。r. 更新終端版本號,建議放在oracle數(shù)據(jù)庫中。s. 存儲多媒體數(shù)據(jù)檢索t. 存儲上行透傳信息u. 存儲數(shù)據(jù)壓縮透傳v. 更新提問應(yīng)答mysql數(shù)據(jù)庫存儲:a. 存儲、更新下行指令,建議廢棄mysql,用redis來替代。b. 存儲車輛多媒體信息,建議廢棄mysql,用redis來替代。4)歷史數(shù)據(jù)查詢統(tǒng)計類a. 軌跡回放條件:gps時間(開始時間、接收

8、時間)、vid;b. 區(qū)域查車(當(dāng)前區(qū)域內(nèi)車輛)條件:車輛類型、車輛速度、是否報警;c. 區(qū)域協(xié)查(歷史區(qū)域內(nèi)車輛)條件:gps時間;d. 歷史報警條件:類型、狀態(tài)、時間;1.2 現(xiàn)有平臺存儲服務(wù)上存在問題1) 盲區(qū)補傳數(shù)據(jù)分離問題;2) 跨多天歷史軌跡查詢的問題;3) 報警數(shù)據(jù)和gps實時數(shù)據(jù)分離的問題;4) 區(qū)域查車、區(qū)域協(xié)查的準(zhǔn)確性和計算效率問題;5) 報警數(shù)據(jù)、can總線數(shù)據(jù)統(tǒng)計分析問題,mongodb提供mapreduce(一個大規(guī)模數(shù)據(jù)并行計算技術(shù),源于google)服務(wù)來進(jìn)行統(tǒng)計分析;6) 拍照數(shù)據(jù)問題(統(tǒng)一管理,方便訪問);7) 業(yè)務(wù)流程、數(shù)據(jù)流程合理性問題;8) 設(shè)計質(zhì)量問題

9、,如下:3|165694816606456724140420020120312/172641|165694236606454524141519920120312/1726429) 集群、負(fù)載均衡問題;10) 高可用性問題(在線擴容、故障轉(zhuǎn)移);11) 運營監(jiān)控問題(存儲實例監(jiān)控);2. 方案設(shè)計2.1 存儲服務(wù)方案設(shè)計目標(biāo)利用mongodb來一體化解決gps實時數(shù)據(jù)(高并發(fā))存儲和相關(guān)的查詢統(tǒng)計業(yè)務(wù)(如歷史軌跡查詢),并解決存儲服務(wù)的長期運營的高可用性問題。具體包括:a. 解決gps實時位置信息存儲問題(高并發(fā)寫、高速查詢、高速統(tǒng)計分析);b. 解決gps報警數(shù)據(jù)存儲問題(高并發(fā)寫、高速查詢、

10、統(tǒng)計分析);c. 解決司機駕駛行為數(shù)據(jù)存儲問題(高并發(fā)寫、高速查詢、統(tǒng)計分析);d. 解決拍照數(shù)據(jù)存儲問題(高并發(fā)寫、自動發(fā)布、高速查詢);e. 解決區(qū)域查車、區(qū)域協(xié)查等運算量大的業(yè)務(wù)統(tǒng)計問題;f. 解決存儲服務(wù)高可用性問題(如負(fù)載均衡、線性擴容、故障轉(zhuǎn)移、災(zāi)備恢復(fù)、服務(wù)監(jiān)控等);最終目標(biāo):簡化現(xiàn)有平臺業(yè)務(wù)流程,減少故障節(jié)點,提高存儲服務(wù)的高可用性。2.2 存儲方案設(shè)計細(xì)則2.2.1 gps實時數(shù)據(jù)存儲設(shè)計針對gps實時數(shù)據(jù)存儲,存儲服務(wù)提供c/c+客戶端接口,供通信系統(tǒng)調(diào)用,可以直接把gps數(shù)據(jù)存放在mongodb中,而調(diào)用者無需關(guān)系mongodb的性能和負(fù)載問題。mongodb采用目前通用

11、的json格式,并提供json格式的解析和組裝包,支持c/c+、java、javascript、flex等眾多主流開發(fā)語言,方便平臺各層面來使用。針對mongodb的數(shù)據(jù)格式特點,我們把gps實時數(shù)據(jù)格式定義為標(biāo)準(zhǔn)json格式,其定義如下:1) gps實時數(shù)據(jù)格式定義詳見“附件1“ 和 ”附件2“相關(guān)定義。 2) 司機駕駛行為數(shù)據(jù)司機駕駛行為現(xiàn)有平臺的數(shù)據(jù)格式:駕駛行為類型|起始位置緯度起始位置經(jīng)度起始位置高度起始位置速度起始位置方向起始位置時間|結(jié)束位置緯度結(jié)束位置經(jīng)度結(jié)束位置高度結(jié)束位置速度結(jié)束位置方向結(jié)束位置時間。具體數(shù)據(jù)樣例:3|1656948166064567241404200201

12、20312/172641|165694236606454524141519920120312/172642。3) 發(fā)動機負(fù)荷率數(shù)據(jù)格式:無固定格式(base64后得到)具體數(shù)據(jù):-1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000mongodb數(shù)據(jù)庫格式定義(json)vid : 311,ts : isodat

13、e(2012-02-17t14:22:46.777z), dat :“-1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”json格式說明:車輛編號(vid)、時間戳(ds)、負(fù)荷數(shù)據(jù)(dat)。 2.2.2 拍照數(shù)據(jù)存儲設(shè)計mongodb提供gridfs特性,用來存儲大文件,如圖片文件和視頻文件。由通信平臺

14、產(chǎn)生的有效拍照圖片,可以連同屬性信息(如車機id、時間戳、圖片id、訪問路徑(http)一起直接存儲在mongodb中,方便前端應(yīng)用查詢。mongodb數(shù)據(jù)庫格式定義(json)vid : 311,ts : isodate(2012-02-17t14:22:46.777z), “fid”: “file1”,“hp”: “3:270001/file.jpg”,dat :“0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

15、0000000000000000000000000000000000000000000000000000000000000000000000”json格式說明:車輛編號(vid)、時間戳(ds)、文件名(fid)、發(fā)布路徑(hp)、圖片數(shù)據(jù)(dat)。2.2.3 gps歷史數(shù)據(jù)查詢設(shè)計gps數(shù)據(jù)查詢主要包括:實時數(shù)據(jù)查詢和歷史數(shù)據(jù)查詢。為解決海量gps數(shù)據(jù)查詢的效率和并發(fā)負(fù)載問題,在設(shè)計時考慮從3各方面來設(shè)計和優(yōu)化:1) 創(chuàng)建數(shù)據(jù)索引mongodb支持對數(shù)據(jù)進(jìn)行索引,即可在設(shè)計之初就設(shè)計好索引,也可在運營期間來對數(shù)據(jù)的索引進(jìn)行調(diào)整,建議在采用前者。針對歷史軌跡數(shù)據(jù)的查詢需求條件:車機id,起止

16、時間,可以對“vid”、“ts”字段創(chuàng)建索引,來提高gps歷史軌跡數(shù)據(jù)的查詢效率。針對報警查詢查詢需求:起止時間和報警狀態(tài),可以對“ts”字段、“vs”字段創(chuàng)建索引。2) 數(shù)據(jù)讀寫分離和負(fù)載均衡設(shè)計在mongodb服務(wù)部署方案中,我們采用多服務(wù)器集群,讀寫分離的部署架構(gòu),即通過部署多個寫服務(wù)和多個讀服務(wù),來解決gps數(shù)據(jù)存儲的效率和服務(wù)可靠性、可擴展性問題。3) 內(nèi)存數(shù)據(jù)mongodb為提高數(shù)據(jù)查詢的效率,也采用了內(nèi)存機制,把大量的熱點數(shù)據(jù)放在內(nèi)存中,來提高數(shù)據(jù)查詢的命中率,我們可以利用這個特性來滿足車輛位置查詢的需求。4) gps數(shù)據(jù)查詢接口設(shè)計a.車輛位置查詢接口提供查詢車輛最新位置信息,

17、查詢條件為車輛id,具體實現(xiàn)主要是通過mongodb的緩存機制來完成。可提供java和javascript接口,供上層應(yīng)用調(diào)用。注:此處與實時服務(wù)的功能有些重復(fù),建議由實時服務(wù)來統(tǒng)一提供。b.歷史軌跡查詢接口設(shè)計提供查詢每輛車的歷史軌跡數(shù)據(jù),查詢條件為:車輛id、開始時間、結(jié)束時間。返回集應(yīng)包含去除除can總線后的數(shù)據(jù)??商峁﹋ava和javascript接口,供上層應(yīng)用調(diào)用。注:查詢返回的數(shù)據(jù)集結(jié)果盡量簡潔,針對每類業(yè)務(wù)要求的訪問,不必要的信息要剔除掉,減少網(wǎng)絡(luò)壓力、提高查詢效率。c報警數(shù)據(jù)查詢2.2.4 gps數(shù)據(jù)統(tǒng)計設(shè)計1) 快照功能提供查詢某個區(qū)域內(nèi)、某段時間、都有哪些車輛,查詢條件為

18、。提供查詢某個區(qū)域內(nèi)、某段時間、都有哪些類型的報警車輛。2) 報警統(tǒng)計可以按報警類別來統(tǒng)計某個時間段內(nèi)都有哪些報警車輛??梢越y(tǒng)計某輛車在某段時間內(nèi)的報警次數(shù)統(tǒng)計,可按總計、按報警類別來統(tǒng)計。2.2.5 拍照數(shù)據(jù)發(fā)布和查詢設(shè)計通過mongodb的插件,與nginx應(yīng)用服務(wù)代理集成,可以直接把存儲在mongodb中的數(shù)據(jù)發(fā)布成http圖片服務(wù),供web應(yīng)用層調(diào)用。在具體應(yīng)用中的業(yè)務(wù)流程如下:方案說明:a. 解決圖片文件儲存儲分布的問題,可以利用mongodb把gps數(shù)據(jù)、圖片數(shù)據(jù)、視頻數(shù)據(jù)等都存儲在一起,方便管理和維護;b. 解決圖片文件便利訪問的問題,如文件的屬性,文件的存儲,文件的訪問路徑都作

19、為一條記錄存儲在mongodb中,方便上層應(yīng)用獲取;c. 解決圖片高效訪問的問題,如利用nginx解決圖片資源并發(fā)訪問的問題,利用squid/varnishd緩存服務(wù)來解決二次訪問mongodb的問題;2.3 存儲服務(wù)業(yè)務(wù)流程框架設(shè)計mongodb存儲服務(wù)提供c+/c#接口、java接口和javascript接口,分別為通訊層、服務(wù)層和應(yīng)用層提供存儲服務(wù)。3. 方案部署架構(gòu)設(shè)計3.1 存儲服務(wù)(mongodb)部署架構(gòu)規(guī)劃設(shè)計為保證mongodb的高可用性(高并發(fā)、高可擴展性、高穩(wěn)定性),我們采用了replica set + sharding部署架構(gòu),這是一種可以水平擴展的模式,在數(shù)據(jù)量很大時

20、特給力,實際大規(guī)模應(yīng)用一般會采用這種架構(gòu)去構(gòu)建mongodb存儲系統(tǒng)。mongodb存儲服務(wù)方案部署架構(gòu)設(shè)計,如下圖所示:mongodb存儲服務(wù)集群架構(gòu)設(shè)計架構(gòu)圖說明:a. 分片cluster:分別在3臺服務(wù)器(見上圖server-1,server-3,server-5)運行一個mongod實例(見上圖mongod shard_11,mongod shard_21,mongod shard_31)。b. 副本集:分別在3臺服務(wù)器(見上圖server-2,server-4,server-6)運行一個mongod實例(稱為mongod shard12,mongod shard22,mongod s

21、hard32),其中:n server-2的mongod shard12是server-2的mongod shard_11的副本。n server-4的mongod shard22是server-2的mongod shard_21的副本。n server-2的mongod shard31是server-2的mongod shard_31的副本。c. 2臺服務(wù)器,每臺服務(wù)器(見上圖server-1、server-3)運行一個mongod實例,作為2個config,其作用是config雙機熱備。d. 3臺服務(wù)器,每臺服務(wù)器(見上圖server-2,server-4,server-6)運行一個mon

22、gos路由進(jìn)程,用于客戶端連接。e線性擴展:可以同時增加2臺服務(wù)器(見上圖server-5、server-6),其一個作為分片,另一個作為分片的副本和路由。備注說明:1)mongod實例 : 用于存儲實際的數(shù)據(jù)塊,實際生產(chǎn)環(huán)境中一個shard server角色可由幾臺服務(wù)器組個一個relica set承擔(dān),防止主機單點故障。2)config server存儲分片集群的的元數(shù)據(jù),其中包括在每個mongod實例的基本信息和塊信息。每個配置服務(wù)器所有塊的元數(shù)據(jù)的副本。通過兩次提交來確保在配置服務(wù)器信息與塊數(shù)據(jù)的一致性。3)mongos 可以被看作是一個數(shù)據(jù)和請求分發(fā)的中心,使單一的mongod實例組

23、成互相關(guān)聯(lián)的集群。當(dāng)接收客戶端請求, mongos根據(jù)config server路由到相應(yīng)的mongod實例(可能是一組mongod),處理并返回結(jié)果。mongos 進(jìn)程沒有持久狀態(tài),在mongos啟動時和配置服務(wù)器建立連接并獲取狀態(tài),當(dāng)配置服務(wù)器發(fā)生任何變化時,會將之傳播到每個mongos 進(jìn)程。3.2 存儲服務(wù)(mongodb)數(shù)據(jù)分片規(guī)劃設(shè)計1)什么叫分片以及分片的作用?數(shù)據(jù)分割以及在不同機器存儲數(shù)據(jù)的過程稱之為分片。通過在多臺機器上分割數(shù)據(jù),使得數(shù)據(jù)庫系統(tǒng)能存儲更多的數(shù)據(jù),和處理更多的負(fù)載,在此過程中不需要更多更強大的機器。mongodb分片的基本概念是分割集群成更小的塊,或是文檔。這

24、些分檔可以分布于很多的shards,這樣每個shard負(fù)載總數(shù)據(jù)集得子集。舉個例子,思考一下。當(dāng)你從集合選擇一個key安裝分片時,并使用key分割數(shù)據(jù)。這個key稱為shard key。假設(shè)你有一個聯(lián)系人的集合。如果我們選擇“姓”作為shard key,那么一個分片可以存儲“姓”以a-f開頭的,下一個分片可以存儲“姓”以g-p開頭的,最后一個分片存儲“姓”以q-z開頭的。當(dāng)你添加和刪除分片時,mongodb會重新做數(shù)據(jù)的負(fù)載,這樣每個分片會獲取一定量的流量和實際量的數(shù)據(jù)。所以在決定什么開始分片呢?考慮一下幾個因素:l 目前的機器的磁盤什么時候用完;l 希望比單一的mongod處理速度更快;l

25、希望在內(nèi)存中保留更多的數(shù)據(jù)以改善性能;3.3 存儲服務(wù)(mongodb)實例部署規(guī)劃設(shè)計由于本方案是:規(guī)劃用4到6臺服務(wù)器,多個mongodb(6個mongod實例、2個config實例、3各mongos實例)實例同時運行在這些服務(wù)器上,所以在部署前需要先規(guī)劃好服務(wù)器的ip地址、實例的名稱、實例的分布(在那臺服務(wù)器上)、實例的端口等,然后再實施。本方案的mongodb數(shù)據(jù)庫實例部署規(guī)劃如下表所示:主機ip服務(wù)名及端口server_1=“mongodb01”(內(nèi)網(wǎng))(外網(wǎng))mongod shard_11:27017mongod config_1:20000s

26、erver_2 = “mongodb02”(內(nèi)網(wǎng))(外網(wǎng))mongod shard_12:27018mongos_1:30000server_3 = “mongodb03”(內(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))

27、(外網(wǎng))mongod shard_31:27017server_6=”mongodb06”(內(nèi)網(wǎng))(外網(wǎng))mongod shard_32:27018mongos_3:300003.4 存儲服務(wù)(mongodb)服務(wù)器硬件、網(wǎng)絡(luò)和操作系統(tǒng)規(guī)劃設(shè)計1)服務(wù)器硬件規(guī)劃要求服務(wù)器內(nèi)存:至少:16g,32g標(biāo)配,越大越好。硬盤存儲空間:1t以上,非raid格式,越大越好。注:不建議用磁盤陣列。服務(wù)器cpu:至少4核以上,標(biāo)配8核,核越多越好cpu。網(wǎng)卡:千兆網(wǎng)卡,雙網(wǎng)卡;2)網(wǎng)絡(luò)規(guī)劃要求mongodb服務(wù)器集群在一個獨立的網(wǎng)段內(nèi)。集群服務(wù)器用千兆交換機連接。3)操作

28、系統(tǒng)red had linux 64位企業(yè)版操作系統(tǒng),支持中文字符編碼。a關(guān)閉文件系統(tǒng)/分區(qū)的atime 選項vi /etc/fstab在對應(yīng)的分區(qū)項后面添加noatime ,nodiratimelabel=/1 / ext3 defaults 1 1label=/data1 /data ext4 defaults,noatime,nodiratime 1 2b.設(shè)置文件句柄,目前該配置已經(jīng)集成到啟動腳本中。vi /etc/security/limit.conf* soft nproc 65536* hard nproc 65536* soft nofile 65536* hard nofil

29、e 65536c.不要使用large vm page (不要使用大內(nèi)存頁選項)linux 大內(nèi)存頁參考:d.用dmesg 查看主機的信息。e.linux 文件系統(tǒng)的選擇mongodb 采用預(yù)分配的大文件來存儲數(shù)據(jù),我們推薦:ext3,xfs.f.linux系統(tǒng)內(nèi)核版本網(wǎng)絡(luò)上對2.6.33-31 以及2.6.32 的表現(xiàn)持懷疑度, 而強力推薦2.6.36g線程堆棧的尺寸默認(rèn)的線程堆棧尺寸為10m,調(diào)整為1m,已經(jīng)集成在啟動腳本中。3.5 mongodb版本規(guī)劃設(shè)計版本號:2.0.3 for liunx 64位。注:偶數(shù)的版本是穩(wěn)定版,奇數(shù)是開發(fā)版,例如,1.2開頭的是穩(wěn)定版(1.2.0 , 1.

30、2.1 , 1.2.2 等等) ,1.3開頭的開發(fā)版(1.3.0 , 1.3.1 ,1.3.2 等。3.6 存儲服務(wù)(mongodb)運營監(jiān)控規(guī)劃設(shè)計4. 方案實施4.1 實施步驟1) 方案設(shè)計2) 方案評審3) 設(shè)計驗證4) 結(jié)論評估5) 上線實施4.2 方案整體實施計劃附件1: 存儲服務(wù)表(mongodb collection)結(jié)構(gòu)設(shè)計1. gps實時數(shù)據(jù)存儲集合(表)結(jié)構(gòu)定義表名:gps_his_infos。作用:用于存儲車機實時上傳gps數(shù)據(jù),并供前端應(yīng)用查詢和統(tǒng)計。具體表結(jié)構(gòu)信息如下所示:編號字段名稱中文對照別名字段類型是否索引備注1vid車輛ida整數(shù)是2tsgps時間b整數(shù)是不包

31、含時區(qū)3lon經(jīng)度c整數(shù)是偏移后的4lat緯度d整數(shù)是偏移后的5sp速度e整數(shù)6dir方向f整數(shù)7alt海拔高度g整數(shù)8vs車輛狀態(tài)g整數(shù)9ac報警編碼h報警編碼子集合9.1s1緊急報警s1整數(shù)9.2s2超速報警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.12s12攝像頭故障s12整數(shù)9.13s13當(dāng)天累計駕駛超時s13整數(shù)9.14s14超時停車s1

32、4整數(shù)9.15s15進(jìn)出區(qū)域s15整數(shù)9.16s16進(jìn)出路線s16整數(shù)9.17s17路線行駛時間不足/過長s17整數(shù)9.18s18路線偏移報警s18整數(shù)9.19s19車輛速度傳感器故障s19整數(shù)9.20s20車輛油量異常s20整數(shù)9.21s21車輛被盜s21整數(shù)9.22s22車輛非法點火s22整數(shù)9.23s23車輛非法位移s23整數(shù)9.24s24碰撞側(cè)翻報警s24整數(shù)9.25s25嚴(yán)重故障s25整數(shù)9.26s26制動氣壓報警s26整數(shù)9.27s27油壓報警s27整數(shù)9.28s28水位低報警s28整數(shù)9.29s29制動蹄片磨損報警s29整數(shù)9.30s30空濾堵塞報警s30整數(shù)9.31s31緩速器

33、高溫報警信號s31整數(shù)9.32s32倉溫報警信號s32整數(shù)9.33s33機濾堵塞信號s33整數(shù)9.34s34燃油堵塞信號s34整數(shù)9.35s35機油溫度報警信號s35整數(shù)9.36s36燃油警告s36整數(shù)9.37s37空檔滑行告警s37整數(shù)9.38s38超長怠速告警s38整數(shù)9.39s39怠速空調(diào)告警s39整數(shù)9.40s40發(fā)動機超轉(zhuǎn)告警s40整數(shù)9.41s41急加速報警s41整數(shù)9.42s42急減速報警s42整數(shù)9.43s43門開報警s43整數(shù)9.44s44冷卻液溫度過高報警s44整數(shù)9.45s45蓄電池電壓報警s45整數(shù)9.46s46abs故障告警s46整數(shù)9.47s47關(guān)鍵點報警s47整數(shù)

34、10lo經(jīng)度i整數(shù)原始經(jīng)度11la緯度j整數(shù)原始緯度12mil里程l整數(shù)13tow累計油耗m整數(shù)14ett發(fā)動機運行時長n整數(shù)15er引擎轉(zhuǎn)速o整數(shù)16ls位置狀態(tài)位p整數(shù)17als區(qū)域/線路報警q字符串18ct冷卻液溫度r整數(shù)19sbv蓄電池電壓s整數(shù)20iow瞬時油耗t整數(shù)21rsp記錄儀速度u整數(shù)22sd機油壓力v整數(shù)23ad大氣壓力w整數(shù)24enp發(fā)動機扭矩百分比x整數(shù)25ds車輛信號狀態(tài)y整數(shù)26st系統(tǒng)時間z整數(shù)建議:為節(jié)省gps實時數(shù)據(jù)的存儲空間,我們建議采用英文首字符縮寫方式來定義每個字段的名稱,當(dāng)然也可以用a、b、c、d來表示每個字段的名稱,這樣的好處是節(jié)省存儲空間,缺點是可

35、讀性差,但可以通過相關(guān)查詢接口函數(shù)還原數(shù)據(jù)項可讀性差的問題。2. gps報警歷史數(shù)據(jù)存儲集合(表)結(jié)構(gòu)定義表名:alarm_his_infos。作用:用于車輛報警事件信息的集合(表),包括報警位置、報警時間、報警附加信息、報警處理信息等。具體表結(jié)構(gòu)信息如下所示:編號字段名稱中文對照別名字段類型是否索引備注1aid報警ida整數(shù)是2vid車輛idb整數(shù)是3vno車牌號c字符串是4did當(dāng)班司機編號d整數(shù)5sts報警開始時間e1整數(shù)是6slon經(jīng)度(起始位置)f1整數(shù)偏移后的7slat緯度(起始位置)g1整數(shù)偏移后的8ssp速度(起始位置)h1整數(shù)9sdir方向(起始位置)i1整數(shù)10salt海拔

36、(起始位置)j1整數(shù)11smil里程(起始位置)k1整數(shù)12stow累計油耗(起始位置)l1整數(shù)13ets報警結(jié)束時間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累計油耗(結(jié)束位置)l2整數(shù)21at報警類型編碼m整數(shù)詳見報警編碼對照表22as報警源n整數(shù)1:車載終端,2:企業(yè)監(jiān)控平臺,3:政府監(jiān)管平臺,9:其它23bs基本狀態(tài)o1整數(shù)24es擴展?fàn)顟B(tài)o2整數(shù)25saa報警附加信息(開始位置

37、)p1字符串26eaa報警附加信息(結(jié)束位置)p2字符串27ats報警時間/系統(tǒng)時間q整數(shù)建議和系統(tǒng)時間合并28aps報警處理狀態(tài)r整數(shù)是-1:未處理;0:不作處理;1:將來處理;2:處理完畢29uid報警處理人s整數(shù)30apts報警處理時間t整數(shù)是31todo督辦狀態(tài)u整數(shù)0:未督辦;1:內(nèi)部督辦;2:監(jiān)管平臺督辦建議:為節(jié)省車輛報警數(shù)據(jù)的存儲空間,我們建議采用英文首字符縮寫方式來定義每個字段的名稱,當(dāng)然也可以用a、b、c、d來表示每個字段的名稱,這樣的好處是節(jié)省存儲空間,缺點是可讀性差,但可以通過相關(guān)查詢接口函數(shù)還原數(shù)據(jù)項可讀性差的問題。注:(1)報警類型編碼對照表,如下表所示:報警類型報

38、警編號緊急報警0超速報警1疲勞駕駛2預(yù)警3導(dǎo)航模塊故障4導(dǎo)航系統(tǒng)天線未接5導(dǎo)航天線短路6終端主電源欠壓7終端主電源掉電8終端顯示屏故障9語音模塊故障10攝像頭故障11當(dāng)天累計駕駛超時18超時停車19進(jìn)出區(qū)域20進(jìn)出路線21路線行駛時間不足/過長22路線偏移報警23車輛速度傳感器故障24車輛油量異常25車輛被盜26車輛非法點火27車輛非法位移28碰撞側(cè)翻報警29嚴(yán)重故障32制動氣壓報警33油壓報警34水位低報警35制動蹄片磨損報警36空濾堵塞報警37緩速器高溫報警信號38倉溫報警信號39機濾堵塞信號40燃油堵塞信號41機油溫度報警信號42燃油警告43空檔滑行告警44超長怠速告警45怠速空調(diào)告警4

39、6發(fā)動機超轉(zhuǎn)告警47急加速報警48急減速報警49門開報警50冷卻液溫度過高報警51蓄電池電壓報警52abs故障告警53關(guān)鍵點報警220(2)報警附加信息編碼定義1.超速報警,格式:位置類型|區(qū)域或路段id類型: 0:無特定位置;1:圓型區(qū)域;2:矩形區(qū)域;3:多邊形區(qū)域;4:路段 當(dāng)類型為0時,無區(qū)域id或路段id值2.進(jìn)出區(qū)域/路段報警附加信息類型 ,格式:位置類型區(qū)域或線路id方向 類型: 0:無特定位置;1:圓型區(qū)域;2:矩形區(qū)域;3:多邊形區(qū)域;4:路線方向: 0:進(jìn),1:出3.路線行駛時間不足/過長, 格式: 路段id路段行駛時間結(jié)果 結(jié)果: 0:不足,1:過長3. 司機駕駛行為事件

40、存儲集合(表)結(jié)構(gòu)定義表名:driver_action_infos。作用:用于存儲司機駕駛行為數(shù)據(jù)的表。具體表結(jié)構(gòu)信息如下所示:編號字段名稱中文對照別名字段類型是否索引備注1vid車輛ida整數(shù)是2aid駕駛行為類型b整數(shù)是詳見下表3stsgps時間(起始位置)c整數(shù)是不包含時區(qū)4slon經(jīng)度(起始位置)d整數(shù)偏移后的5slat緯度(起始位置)e整數(shù)偏移后的6ssp速度(起始位置)f整數(shù)7salt海拔(起始位置)g整數(shù)8sdir方向(起始位置)h整數(shù)9etsgps時間(結(jié)束位置)i整數(shù)是不包含時區(qū)10elon經(jīng)度(結(jié)束位置)j整數(shù)偏移后的11elat緯度(結(jié)束位置)k整數(shù)偏移后的12esp速度

41、(結(jié)束位置)l整數(shù)13ealt海拔高度(結(jié)束位置)m整數(shù)14edir方向(結(jié)束位置)n整數(shù)15st系統(tǒng)時間o整數(shù)注:駕駛行為類型定義 :駕駛行為類型行為編號加熱器工作1空調(diào)工作2發(fā)動機超轉(zhuǎn)3過長怠速4超經(jīng)濟區(qū)運行5空檔滑行6怠速空調(diào)7二檔起步8檔位不當(dāng)9超速10疲勞駕駛114. 發(fā)動機負(fù)荷率存儲集合(表)結(jié)構(gòu)定義表名:engine_load_infos。作用:用于存儲車輛的發(fā)動機負(fù)荷率數(shù)據(jù)的集合(表)。具體表結(jié)構(gòu)信息如下所示:編號字段名稱中文對照別名字段類型是否索引備注1vid車輛ida整數(shù)是2ts時間c整數(shù)是不包含時區(qū)3dat負(fù)荷數(shù)據(jù)d字符串5. 拍照數(shù)據(jù)存儲集合(表)結(jié)構(gòu)定義表名:phot

42、o_infos。作用:用于存儲車輛的拍照圖片數(shù)據(jù)的集合(表)。具體表結(jié)構(gòu)信息如下所示:編號字段名稱中文對照別名字段類型是否索引備注1vid車輛ida整數(shù)是2ts拍照時間b整數(shù)是不包含時區(qū)3fn文件名c字符串4hp發(fā)布地址d字符串5dat圖片e二進(jìn)制對象6. 上下行指令數(shù)據(jù)集合結(jié)構(gòu)定義表名:up_down_command_infos。作用:用于存儲車輛的拍照圖片數(shù)據(jù)的集合(表)。具體表結(jié)構(gòu)信息如下所示:附件2: 存儲服務(wù)(mongodb)對外接口統(tǒng)一定義存儲服務(wù)的對外統(tǒng)一接口分為3大類:更新類接口、查詢接口和統(tǒng)計類接口。由于寫操作接口跟通信服務(wù)緊密相關(guān),所以優(yōu)先提供c+類型的接口。查詢和統(tǒng)計接口

43、跟上層服務(wù)和應(yīng)用緊密相關(guān),所以提供java類型的接口和javascript接口,這里優(yōu)先提供java接口。2.1更新類接口1) gps實時位置數(shù)據(jù)更新接口agps實時數(shù)據(jù)插入操作接口int insertgps(bsonobj& gpsdata);注:bsonobj為mongodb c+客戶端驅(qū)動的bson數(shù)據(jù)的基本對象。gpsdata參數(shù)的聲明類型為bsonobj其具體格式定義如下a : 1175, / 車輛id“b” : isodate(2012-02-17t14:22:46)/ gps時間c : 69838489,/ 經(jīng)度d : 23946431,/ 緯度e : 59,/ 速度f : 23

44、4,/ 方向“g”: 1225,/ 海拔高度vs : / 車輛狀態(tài)子類(嵌套)“s1” : / 緊急報警“s2” : / 超速報警“s3” : / 疲勞駕駛“s4” : / 預(yù)警“s5” : / 導(dǎo)航模塊故障“s6” : / 導(dǎo)航系統(tǒng)天線未接“s7” : / 導(dǎo)航天線短路“s8” : / 終端主電源欠壓“s9” : / 終端主電源掉電“s10” : / 終端顯示屏故障“s11” : / 語音模塊故障“s12” : / 攝像頭故障“s13” : / 當(dāng)天累計駕駛超時“s14” : / 超時停車“s15” : / 進(jìn)出區(qū)域“s16” : / 進(jìn)出路線“s17” : / 路線行駛時間不足/過長 “s

45、18” : / 路線偏移報警“s19” : / 車輛速度傳感器故障“s20” : / 車輛油量異?!皊21” : / 車輛被盜“s22” : / 車輛非法點火“s23” : / 車輛非法位移“s24” : / 碰撞側(cè)翻報警“s25” : / 嚴(yán)重故障“s26” : / 制動氣壓報警“s27” : / 油壓報警“s28” : / 水位低報警“s29” : / 制動蹄片磨損報警“s30” : / 空濾堵塞報警“s31” : / 緩速器高溫報警信號“s32” : / 倉溫報警信號“s33” : / 機濾堵塞信號“s34” : / 燃油堵塞信號“s35” : / 機油溫度報警信號“s36” : / 燃油警告“s37” : / 空檔滑行告警“s38” : / 超長怠速告警“s39” : / 怠速空調(diào)告警“s40” : / 發(fā)動機超轉(zhuǎn)告警“s41” : / 急加速報警“s42” : / 急減速報警“s43” : / 門開報警“s44” : / 冷卻液溫度過高報警“s45” : / 蓄電池電壓報警“s47” : / abs故障告警“s47”

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論