1功能简介:

优点:

独立服务:减少原有应用服务的请求连接压力,分解出文件上传与文件下载的服务器压力

非结构化存储:基于对象存储,一站式地完成日志处理、图片处理、文档、附件、音视频处理

开放性访问:通过RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展

异步消息日志持久化:保证高并发业务的可用性与可靠性

存储技术的优势:

文件服务器致力于小型文件的存储,比如业务中图片、普通文档等。由于MongoDB 支持多种数据格式的存储,对于二进制的存储自然也是不话下,所以可以很方便的用于存储文件。由于 MongoDB 的 BSON 文档对于数据量大小的限制(每个文档不超过16M),所以本文件服务器主要针对的是小型文件的存储。对于大型文件的存储(比如超过16M),MongoDB 官方已经提供了成熟的产品 GridFS

mongodb 的message字段比起sql更灵活

基本功能:

针对当前业务系统中功能服务包含:头像、文件、附件、日志信息

扩展功能:

实现网盘功能,可以管理目录与文件



2 技术方案

Spring Boot、SpringMVC、log4j2、SpringData、RabbitMQ、Druid、Mysql、MongoDB、FastJson、Swagger2

 

基于Log4j2+MongoDB实现日志管理

基于SrpingDataMongoDB+MongoDB实现文件存储

基于MongoTemplate+MongoDB实现大文件存储

基于SpringMVC+SpringDataJPA+Druid+MYSQL实现网盘目录管理

基于RESTful API实现实时查询接口

基于RabbitMQ实现异步消息日志存储

基于Swagger2实现构建RESTful APIs

基于SrpingDataMongoDB+MongoDB实现工作流日志存储与搜索

OSS和mongodb oss和mongodb的区别_大数据



3设计方案

日志存储:定义日志类型:系统日志,业务事件日志

通过loggerName定义入口的类型,业务系统日志的保存通过高级消息队列(AMQP)来进行调用,选用RabbitMQ,通过Direct模式

日志查询:通过RESTful API实时查询,根据loggerName区分系统入口类型

文件存储:word转换后pdf存储、上传原文件存储、不需要预览的附件存储、非上传文件形式的图片

文件查询:通过RESTful API实时查询,根据文件id和分页查询

文件删除:通过RESTful API删除操作,根据文件id

 

针对工作流平台的定制方案

根据工作的业务流程:流程事件执行记录、迁移线判断记录、获取参与者记录、流程操作失败记录、表单事件/公式执行,进行定制日志索引,构建独立的日志分区进行管理

索引定义:业务类型(记录是哪一类业务流程操作)流程定义ID、流程实例ID、环节定义ID、环节实例ID、记录时间、存储级别:level(系统,业务,错误)

存储对象:message

日志存储:通过SpringData存储在MongoDB的文档对象中,性能上有些许影响

日志查询:通过索引字段进行搜索

 



4 接口展示

OSS和mongodb oss和mongodb的区别_OSS和mongodb_02

5 代码

后续我会把代码上传到github上

https://github.com/yangty2010/RedSeaOSS