实时在线车辆10万台峰值20万台 设计目标接入100万台。
定位信息实时计算 3万条/秒 峰值6万/秒
一期建设:
数据接收部分用MINA 、地理信息计算ARCGIS,地图展示 flex + ARCGIS 后改成 51地图.
系统缓存早期用静态MAP ,EHCACHE,后续加入 memorycache
消息队列:与三方接口采用 RABBIT MQ ,中间也曾试用KAFKA 传输
数据存储 采用ORACLE ,分车型 日期 分表存储。
受硬件限制:数据经常出现积压,消息无法及时处理。MINA接收到数据后无法快速计算和存储。
一期项目改造:
目标很明确,解决MINA接收完数据后的存储和计算压力,于是拆分 数据接收程序(AP)。
新增消息转发网关程序、 内存缓存计算程序、消息广播程序 和 可水平扩展数据接收程序。
二期项目建设:
系统设计目标:接入100万台车,查询定位信息耗时小于1秒。对于车辆行驶区域、位移判断、条件转发等实时计算。
应用 NETTY 做为数据接入处理(MINA没用好,性能很难突破2万条每秒)。
地图展示用百度地图,地理信息计算用开源的GIS 。
应用REDIS 做 消息队列和车辆、平台状态缓存服务。
应用 MONGODB 存储定位数据(分片),应用ORACLE 基本信息数据和统计数据。
应用STORM 做实时计算。
削减AP的功能,只处理数据收发,所有的计算存储任务交由STORM处理。各应用间交互通过REDIS (压力大,不到1分钟就交换约2.4G数据)