分布式对象存储系统
从0到1参与分布式对象存储系统的设计与开发,为公司提供了小文件对象存储的底层能力
【项目背景】
由于公司业务对于小文件的存储有着强烈需求,需要开发一个分布式对象存储的系统,其必 须具备支持任意大小对象的读写、数据强一致性、服务可扩展性高。
【项目描述】
项目分三个模块,模块之间使用grpc进行通信。
1. meta模块 负责管理副本组信息及节点服务信息,使用Raft协议保证节点之间的数据一致性。
2. gateway模块 负责对外提供RestFul接口,兼容S3协议,将数据流切包、压缩成对象包发送给 datanode模块。
3. datanode模块 负责存储block数据及对象元信息,采用Rocksdb存储对象元信息,分区使用 PacificA一致性协议实现数据冗余。
该项目支撑了公司的底层存储,支持6000+QPS的请求写入,毫秒级的小文件读写速度。
【负责模块】
gateway模块、datanode模块