MongoDB存储服务方案设计.docx

上传人:b****5 文档编号:14431856 上传时间:2023-06-23 格式:DOCX 页数:54 大小:513.75KB
下载 相关 举报
MongoDB存储服务方案设计.docx_第1页
第1页 / 共54页
MongoDB存储服务方案设计.docx_第2页
第2页 / 共54页
MongoDB存储服务方案设计.docx_第3页
第3页 / 共54页
MongoDB存储服务方案设计.docx_第4页
第4页 / 共54页
MongoDB存储服务方案设计.docx_第5页
第5页 / 共54页
MongoDB存储服务方案设计.docx_第6页
第6页 / 共54页
MongoDB存储服务方案设计.docx_第7页
第7页 / 共54页
MongoDB存储服务方案设计.docx_第8页
第8页 / 共54页
MongoDB存储服务方案设计.docx_第9页
第9页 / 共54页
MongoDB存储服务方案设计.docx_第10页
第10页 / 共54页
MongoDB存储服务方案设计.docx_第11页
第11页 / 共54页
MongoDB存储服务方案设计.docx_第12页
第12页 / 共54页
MongoDB存储服务方案设计.docx_第13页
第13页 / 共54页
MongoDB存储服务方案设计.docx_第14页
第14页 / 共54页
MongoDB存储服务方案设计.docx_第15页
第15页 / 共54页
MongoDB存储服务方案设计.docx_第16页
第16页 / 共54页
MongoDB存储服务方案设计.docx_第17页
第17页 / 共54页
MongoDB存储服务方案设计.docx_第18页
第18页 / 共54页
MongoDB存储服务方案设计.docx_第19页
第19页 / 共54页
MongoDB存储服务方案设计.docx_第20页
第20页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MongoDB存储服务方案设计.docx

《MongoDB存储服务方案设计.docx》由会员分享,可在线阅读,更多相关《MongoDB存储服务方案设计.docx(54页珍藏版)》请在冰点文库上搜索。

MongoDB存储服务方案设计.docx

MongoDB存储服务方案设计

 

存储服务方案设计

 

2012-03-14

1.需求分析3

1.1客车平台和货运平台现有需求3

1.2现有平台存储服务上存在问题5

2.方案设计7

2.1存储服务方案设计目标7

2.2存储方案设计细则7

2.2.1实时数据存储设计7

2.2.2拍照数据存储设计8

2.2.3历史数据查询设计9

2.2.4数据统计设计10

2.2.5拍照数据发布和查询设计11

2.3存储服务业务流程框架设计11

3.方案部署架构设计12

3.1存储服务()部署架构规划设计12

3.2存储服务()数据分片规划设计14

3.3存储服务()实例部署规划设计14

3.4存储服务()服务器硬件、网络和操作系统规划设计15

3.5版本规划设计16

3.6存储服务()运营监控规划设计16

4.方案实施17

4.1实施步骤17

4.2方案整体实施计划17

附件1:

存储服务表()结构设计18

附件2:

存储服务()对外接口统一定义26

2.1更新类接口26

2.2查询类接口31

2.3统计接口39

附件3:

存储服务()安装部署说明41

3.1安装41

3.2分片配置42

3.2.1分片服务器()配置42

3.2.2副本集()配置43

3.2.3启动并配置三台43

3.2.4部署并配置三台44

3.2.5命令行添加分片44

数据存储服务方案设计

1.需求分析

1.1客车平台和货运平台现有需求

1)实时数据文件存储类

a.实时轨迹数据:

传统文件方式存储,一条轨迹150B,每天上报8640次,一天大约为1M;

轨迹文件格式说明:

偏移经度:

偏移纬度:

时间:

速度:

正北方向夹角:

车辆状态:

报警编码:

经度:

纬度:

海拔:

里程:

累计油耗:

发动机运行总时长:

引擎转速(发动机转速):

位置基本信息状态位:

报区域/线路报警:

冷却液温度:

蓄电池电压:

瞬时油耗:

行驶记录仪速度:

机油压力:

大气压力:

发动机扭矩百分比:

车辆信号状态:

系统时间\r\n

特点:

数据频率高,数据量大。

b.实时报警数据:

传统文件方式存储,一条报警100B,每天上报8640次,一天大约为800K;

报警文件格式说明:

报警编码:

偏移经度:

偏移纬度:

经度:

纬度:

时间:

速度:

正北方向夹角:

累计油耗:

里程:

报区域/线路报警:

海拔:

系统时间\r\n

特点:

数据频率高,数据量大。

c.驾驶行为事件:

传统文件方式存储,一条驾驶行为事件100B,每天上报不固定,根据实际生产环境观察,平均每天最大300K;

特点:

数据频率不高,数据量小。

d.发动机负荷率:

传统文件方式存储,一条发动机负荷率200B,每天上报360次,一天大约为80K;

特点:

数据频率不高,数据量小。

e.拍照数据,图片文件,每天上报数据量不定

特点:

数据频率不高,数据量小。

f.盲区补传轨迹文件:

轨迹文件统计最大数,这里不做统计;

g.盲区补传报警文件:

报警文件统计最大数,这里不做统计;

2)实时数据传统数据库存储类

数据库存储

A.存储非法轨迹位置;

B.更新车辆最后位置;

C.存储、更新车辆上下线;

D.存储、更新车辆报警;

数据库存储

A.更新车辆最后位置

B.存储、更新车辆报警

3)操作指令传统数据库类

数据库存储

A.存储、更新下行指令,建议放在中,用 来存放。

B.存储车辆多媒体事件

C.存储车辆多媒体信息

D.存储车辆注册,建议放在数据库中。

E.存储车辆鉴权,建议放在数据库中,同步到中供鉴权服务用。

F.存储车辆注销,建议放在数据库中。

G.存储车辆事件报告

H.存储车辆信息点播,建议放在数据库中。

I.存储车辆电子运单,建议放在数据库中。

J.存储车辆驾驶员信息,建议放在数据库中,同步到,防止二次访问数据库。

K.存储车辆行驶记录仪信息,建议放在数据库中。

L.存储、更新车辆调度信息,建议放在数据库中。

M.更新车辆照片信息

N.更新终端参数信息

O.更新路线信息,建议放在数据库中。

P.更新电子围栏,建议放在数据库中。

Q.存储、更新终端参数设置,建议放在数据库中。

R.更新终端版本号,建议放在数据库中。

S.存储多媒体数据检索

T.存储上行透传信息

U.存储数据压缩透传

V.更新提问应答

数据库存储:

A.存储、更新下行指令,建议废弃,用来替代。

B.存储车辆多媒体信息,,建议废弃,用来替代。

4)历史数据查询统计类

A.轨迹回放条件:

时间(开始时间、接收时间)、;

B.区域查车(当前区域内车辆)条件:

车辆类型、车辆速度、是否报警;

C.区域协查(历史区域内车辆)条件:

时间;

D.历史报警条件:

类型、状态、时间;

1.2现有平台存储服务上存在问题

1)盲区补传数据分离问题;

2)跨多天历史轨迹查询的问题;

3)报警数据和实时数据分离的问题;

4)区域查车、区域协查的准确性和计算效率问题;

5)报警数据、总线数据统计分析问题,提供(一个大规模数据并行计算技术,源于)服务来进行统计分析;

6)拍照数据问题(统一管理,方便访问);

7)业务流程、数据流程合理性问题;

8)设计质量问题,如下:

3|[16569481][66064567][241][404][200][20120312/172641]|[16569423][66064545][241][415][199][20120312/172642]

9)集群、负载均衡问题;

10)高可用性问题(在线扩容、故障转移);

11)运营监控问题(存储实例监控);

 

2.方案设计

2.1存储服务方案设计目标

利用来一体化解决实时数据(高并发)存储和相关的查询统计业务(如历史轨迹查询),并解决存储服务的长期运营的高可用性问题。

具体包括:

A.解决实时位置信息存储问题(高并发写、高速查询、高速统计分析);

B.解决报警数据存储问题(高并发写、高速查询、统计分析);

C.解决司机驾驶行为数据存储问题(高并发写、高速查询、统计分析);

D.解决拍照数据存储问题(高并发写、自动发布、高速查询);

E.解决区域查车、区域协查等运算量大的业务统计问题;

F.解决存储服务高可用性问题(如负载均衡、线性扩容、故障转移、灾备恢复、服务监控等);

最终目标:

简化现有平台业务流程,减少故障节点,提高存储服务的高可用性。

2.2存储方案设计细则

2.2.1实时数据存储设计

针对实时数据存储,存储服务提供客户端接口,供通信系统调用,可以直接把数据存放在中,而调用者无需关系的性能和负载问题。

采用目前通用的格式,并提供格式的解析和组装包,支持、、、等众多主流开发语言,方便平台各层面来使用。

针对的数据格式特点,我们把实时数据格式定义为标准格式,其定义如下:

1)实时数据格式定义

详见“附件1“和”附件2“相关定义。

2)司机驾驶行为数据

司机驾驶行为现有平台的数据格式:

驾驶行为类型|[起始位置纬度][起始位置经度][起始位置高度][起始位置速度][起始位置方向][起始位置时间]|[结束位置纬度][结束位置经度][结束位置高度][结束位置速度][结束位置方向][结束位置时间]。

具体数据样例:

3|[16569481][66064567][241][404][200][20120312/172641]|[16569423][66064545][241][415][199][20120312/172642]。

3)发动机负荷率数据

格式:

无固定格式(64后得到)

具体数据:

-1600

数据库格式定义()

{

"":

311,

"":

("2012-02-17T14:

22:

46.777Z"),

"":

“-1600”

}

格式说明:

车辆编号()、时间戳()、负荷数据()。

2.2.2拍照数据存储设计

提供特性,用来存储大文件,如图片文件和视频文件。

由通信平台产生的有效拍照图片,可以连同属性信息(如车机、时间戳、图片、访问路径())一起直接存储在中,方便前端应用查询。

数据库格式定义()

{

"":

311,

"":

("2012-02-17T14:

22:

46.777Z"),

“”:

“1”,

“”:

“”,

"":

“00”

}

格式说明:

车辆编号()、时间戳()、文件名()、发布路径()、图片数据()。

2.2.3历史数据查询设计

数据查询主要包括:

实时数据查询和历史数据查询。

为解决海量数据查询的效率和并发负载问题,在设计时考虑从3各方面来设计和优化:

1)创建数据索引

支持对数据进行索引,即可在设计之初就设计好索引,也可在运营期间来对数据的索引进行调整,建议在采用前者。

针对历史轨迹数据的查询需求条件:

车机,起止时间,可以对“”、“”字段创建索引,来提高历史轨迹数据的查询效率。

针对报警查询查询需求:

起止时间和报警状态,可以对“”字段、“”字段创建索引。

2)数据读写分离和负载均衡设计

在服务部署方案中,我们采用多服务器集群,读写分离的部署架构,即通过部署多个写服务和多个读服务,来解决数据存储的效率和服务可靠性、可扩展性问题。

3)内存数据

为提高数据查询的效率,也采用了内存机制,把大量的热点数据放在内存中,来提高数据查询的命中率,我们可以利用这个特性来满足车辆位置查询的需求。

4)数据查询接口设计

a.车辆位置查询接口

提供查询车辆最新位置信息,查询条件为车辆,具体实现主要是通过的缓存机制来完成。

可提供和接口,供上层应用调用。

注:

此处与实时服务的功能有些重复,建议由实时服务来统一提供。

b.历史轨迹查询接口设计

提供查询每辆车的历史轨迹数据,查询条件为:

车辆、开始时间、结束时间。

返回集应包含去除除总线后的数据。

可提供和接口,供上层应用调用。

注:

查询返回的数据集结果尽量简洁,针对每类业务要求的访问,不必要的信息要剔除掉,减少网络压力、提高查询效率。

c.报警数据查询

2.2.4数据统计设计

1)快照功能

提供查询某个区域内、某段时间、都有哪些车辆,查询条件为。

提供查询某个区域内、某段时间、都有哪些类型的报警车辆。

2)报警统计

可以按报警类别来统计某个时间段内都有哪些报警车辆。

可以统计某辆车在某段时间内的报警次数统计,可按总计、按报警类别来统计。

2.2.5拍照数据发布和查询设计

通过的插件,与应用服务代理集成,可以直接把存储在中的数据发布成图片服务,供应用层调用。

在具体应用中的业务流程如下:

方案说明:

A.解决图片文件储存储分布的问题,可以利用把数据、图片数据、视频数据等都存储在一起,方便管理和维护;

B.解决图片文件便利访问的问题,如文件的属性,文件的存储,文件的访问路径都作为一条记录存储在中,方便上层应用获取;

C.解决图片高效访问的问题,如利用解决图片资源并发访问的问题,利用缓存服务来解决二次访问的问题;

2.3存储服务业务流程框架设计

存储服务提供接口、接口和接口,分别为通讯层、服务层和应用层提供存储服务。

3.方案部署架构设计

3.1存储服务()部署架构规划设计

为保证的高可用性(高并发、高可扩展性、高稳定性),我们采用了+部署架构,这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建存储系统。

存储服务方案部署架构设计,如下图所示:

存储服务集群架构设计

架构图说明:

A.分片:

分别在3台服务器(见上图1,3,5)运行一个实例(见上图11,21,31)。

B.副本集:

分别在3台服务器(见上图2,4,6)运行一个实例(称为12,22,32),其中:

⏹2的12是2的11的副本。

⏹4的22是2的21的副本。

⏹2的31是2的31的副本。

C.2台服务器,每台服务器(见上图1、3)运行一个实例,作为2个,其作用是双机热备。

D.3台服务器,每台服务器(见上图2,4,6)运行一个路由进程,用于客户端连接。

E.线性扩展:

可以同时增加2台服务器(见上图5、6),其一个作为分片,另一个作为分片的副本和路由。

备注说明:

1)实例:

用于存储实际的数据块,实际生产环境中一个角色可由几台服务器组个一个承担,防止主机单点故障。

2)存储分片集群的的元数据,其中包括在每个实例的基本信息和块信息。

每个配置服务器所有块的元数据的副本。

通过两次提交来确保在配置服务器信息与块数据的一致性。

3)可以被看作是一个数据和请求分发的中心,使单一的实例组成互相关联的集群。

当接收客户端请求,根据路由到相应的实例(可能是一组),处理并返回结果。

进程没有持久状态,在启动时和配置服务器建立连接并获取状态,当配置服务器发生任何变化时,会将之传播到每个进程。

3.2存储服务()数据分片规划设计

1)什么叫分片以及分片的作用?

数据分割以及在不同机器存储数据的过程称之为分片。

通过在多台机器上分割数据,使得数据库系统能存储更多的数据,和处理更多的负载,在此过程中不需要更多更强大的机器。

分片的基本概念是分割集群成更小的块,或是文档。

这些分档可以分布于很多的,这样每个负载总数据集得子集。

举个例子,思考一下。

当你从集合选择一个安装分片时,并使用分割数据。

这个称为。

假设你有一个联系人的集合。

如果我们选择“姓”作为,那么一个分片可以存储“姓”以开头的,下一个分片可以存储“姓”以开头的,最后一个分片存储“姓”以开头的。

当你添加和删除分片时,会重新做数据的负载,这样每个分片会获取一定量的流量和实际量的数据。

所以在决定什么开始分片呢?

考虑一下几个因素:

●目前的机器的磁盘什么时候用完;

●希望比单一的处理速度更快;

●希望在内存中保留更多的数据以改善性能;

3.3存储服务()实例部署规划设计

由于本方案是:

规划用4到6台服务器,多个(6个实例、2个实例、3各实例)实例同时运行在这些服务器上,所以在部署前需要先规划好服务器的地址、实例的名称、实例的分布(在那台服务器上)、实例的端口等,然后再实施。

本方案的数据库实例部署规划如下表所示:

主机 

服务名及端口

1=“01”

192.168.5.1(内网)

10.1.1.1(外网)

11:

27017

1:

20000

2=“02”

192.168.5.2(内网)

10.1.1.2(外网)

12:

27018

1:

30000

3=“03”

192.168.5.3(内网)

10.1.1.3(外网)

21:

27017

2:

20000

4=“04”

192.168.5.4(内网)

10.1.1.4(外网)

22:

27018

2:

30000

5=“05”

192.168.5.5(内网)

10.1.1.5(外网)

31:

27017

6=”06”

192.168.5.6(内网)

10.1.1.6(外网)

32:

27018

3:

30000

3.4存储服务()服务器硬件、网络和操作系统规划设计

1)服务器硬件规划要求

服务器内存:

至少:

16G,32G标配,越大越好。

硬盘存储空间:

1T以上,非格式,越大越好。

注:

不建议用磁盘阵列。

服务器:

至少4核以上,标配8核,核越多越好。

网卡:

千兆网卡,双网卡;

2)网络规划要求

服务器集群在一个独立的网段内。

集群服务器用千兆交换机连接。

3)操作系统

64位企业版操作系统,支持中文字符编码。

A.关闭文件系统/分区的选项

在对应的分区项后面添加

1/311

1412

B.设置文件句柄4k+,目前该配置已经集成到启动脚本中。

*65536

*65536

*65536

*65536

C.不要使用(不要使用大内存页选项)

大内存页参考:

D.用查看主机的信息。

文件系统的选择

采用预分配的大文件来存储数据,我们推荐3.

系统内核版本

网络上对2.6.33-31以及2.6.32的表现持怀疑度,而强力推荐2.6.36

G.线程堆栈的尺寸

默认的线程堆栈尺寸为10M,调整为1M,已经集成在启动脚本中。

3.5版本规划设计

版本号:

2.0.364位。

注:

偶数的版本是稳定版,奇数是开发版,例如,1.2开头的是稳定版(1.2.0,1.2.1,1.2.2等等),1.3开头的开发版(1.3.0,1.3.1,1.3.2等。

3.6存储服务()运营监控规划设计

 

4.方案实施

4.1实施步骤

1)方案设计

2)方案评审

3)设计验证

4)结论评估

5)上线实施

 

4.2方案整体实施计划

附件1:

存储服务表()结构设计

1.实时数据存储集合(表)结构定义

表名:

作用:

用于存储车机实时上传数据,并供前端应用查询和统计。

具体表结构信息如下所示:

编号

字段名称

中文对照

别名

字段类型

是否索引

备注

1

车辆

A

整数

2

时间

B

整数

不包含时区

3

经度

C

整数

偏移后的

4

纬度

D

整数

偏移后的

5

速度

E

整数

6

方向

F

整数

7

海拔高度

G

整数

8

车辆状态

G

整数

9

报警编码

H

报警编码子集合

9.1

S1

紧急报警

S1

整数

9.2

S2

超速报警

S2

整数

9.3

S3

疲劳驾驶

S3

整数

9.4

S4

预警

S4

整数

9.5

S5

导航模块故障

S5

整数

9.6

S6

导航系统天线未接

S6

整数

9.7

S7

导航天线短路

S7

整数

9.8

S8

终端主电源欠压

S8

整数

9.9

S9

终端主电源掉电

S9

整数

9.10

S10

终端显示屏故障

S10

整数

9.11

S11

语音模块故障

S11

整数

9.12

S12

摄像头故障

S12

整数

9.13

S13

当天累计驾驶超时

S13

整数

9.14

S14

超时停车

S14

整数

9.15

S15

进出区域

S15

整数

9.16

S16

进出路线

S16

整数

9.17

S17

路线行驶时间不足/过长

S17

整数

9.18

S18

路线偏移报警

S18

整数

9.19

S19

车辆速度传感器故障

S19

整数

9.20

S20

车辆油量异常

S20

整数

9.21

S21

车辆被盗

S21

整数

9.22

S22

车辆非法点火

S22

整数

9.23

S23

车辆非法位移

S23

整数

9.24

S24

碰撞侧翻报警

S24

整数

9.25

S25

严重故障

S25

整数

9.26

S26

制动气压报警

S26

整数

9.27

S27

油压报警

S27

整数

9.28

S28

水位低报警

S28

整数

9.29

S29

制动蹄片磨损报警

S29

整数

9.30

S30

空滤堵塞报警

S30

整数

9.31

S31

缓速器高温报警信号

S31

整数

9.32

S32

仓温报警信号

S32

整数

9.33

S33

机滤堵塞信号

S33

整数

9.34

S34

燃油堵塞信号

S34

整数

9.35

S35

机油温度报警信号

S35

整数

9.36

S36

燃油警告

S36

整数

9.37

S37

空档滑行告警

S37

整数

9.38

S38

超长怠速告警

S38

整数

9.39

S39

怠速空调告警

S39

整数

9.40

S40

发动机超转告警

S40

整数

9.41

S41

急加速报警

S41

整数

9.42

S42

急减速报警

S42

整数

9.43

S43

门开报警

S43

整数

9.44

S44

冷却液温度过高报警

S44

整数

9.45

S45

蓄电池电压报警

S45

整数

9.46

S46

故障告警

S46

整数

9.47

S47

关键点报警

S47

整数

10

经度

I

整数

原始经度

11

纬度

J

整数

原始纬度

12

里程

L

整数

13

累计油耗

M

整数

14

发动机运行时长

N

整数

15

引擎转速

O

整数

16

位置状态位

P

整数

17

区域/线路报警

Q

字符串

18

冷却液温度

R

整数

19

蓄电池电压

S

整数

20

瞬时油耗

T

整数

21

记录仪速度

U

整数

22

机油压力

V

整数

23

大气压力

W

整数

24

发动机扭矩百分比

X

整数

25

车辆信号状态

Y

整数

26

系统时间

Z

整数

建议:

为节省实时数据的存储空间,我们建议采用英文首字符缩写方式来定义每个字段的名称,当然也可以用a、b、c、d来表示每个字段的名称,这样的好处是节省存储空间,缺点是可读性差,但可以通过相关查询接口函数还原数据项可读性差的问题。

2.报警历史数据存储集合(表)结构定义

表名:

作用:

用于车辆报警事件信息的集合(表),包括报警位置、报警时间、报警附加信息、报警处理信息等。

具体表结构信息如下所示:

编号

字段名称

中文对照

别名

字段类型

是否索引

备注

1

报警

A

整数

2

车辆

B

整数

3

车牌号

C

字符串

4

当班司机编号

D

整数

5

报警开始时间

E1

整数

6

经度(起始位置)

F1

整数

偏移后的

7

纬度(起始位置)

G1

整数

偏移后的

8

速度(起始位置)

H1

整数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2