基于Openresty+CEPH实现海量数据管理系统
「持续更新中,欢迎关注...」 1. 需求: 作为一家专注于三维高精度地图服务的公司,有海量(PB级)的原始数据、中间数据、成功数据,需要存储、管理、并定期归档。 按项目管理数据,数据分类航飞数据、控制点数据、中间数据、成果数据、其他数据。数据来源包括无人机数据、载荷数据、地面站数据、人工打点数据等。不同渠道汇集而来的数据。 采用类似百度网盘的形式,上传、下载,支持断点续传、进度跟踪。 支持细化到文件级别的权限控制,以及更多的文件(夹)属性。 2. 分析: 系统重点在于数据存储的选型,支持海量数据的存储,能够支持在复杂网络下的数据上传。选用CEPH作为数据存储,RGW对象存储,S3协议上传下载,完美支持分片和断点续传。 系统难点在于文件级别的业务权限控制,以及文件(夹)更多的属性支持。CEPH RGW本身支持权限控制,但是无法和业务权限做对接。对象存储本身没有文件夹的概念,无法对文件夹做分类、数量展示、大小展示。所以实现自定义索引服务,CEPH主要负责存储,自定义索引服务实现展示与查询。 3. 实现 系统重点在于海量数据上传的可靠性与海量数据索引的管理。 3.1 架构 上传助手就是类百度网盘的桌面端软件,采用 Electron JS )实现。主要实现功能:项目展示、上传、下载。 业务层包括网关服务、账号服务、项目服务、文件索引服务等。采用Java + Spring Boot +