FastDfs与ElasticSearch和Mysql完成海量数据存储搜索功能
先附上项目地址:项目地址
fdfs-es-demo
介绍
springboot+mysql+fastdfs+elasticsearch完成海量文件文件上传下载搜索功能demo,现可根据文件名称、作者、以及分类id进行搜索,如需更多功能请自行完善
软件架构
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─wyb
│ │ │ └─fastdfs
│ │ │ │ FastdfsDemoApplication.java 项目启动类
│ │ │ │
│ │ │ ├─config
│ │ │ │ ElasticSearchConfig.java es配置类
│ │ │ │ FileConfig.java 文件配置类
│ │ │ │
│ │ │ ├─constant
│ │ │ │ EsConstant.java es常量类(主要配置索引名称)
│ │ │ │
│ │ │ ├─controller
│ │ │ │ FastDfsFileController.java 与fdfs有关文件上传下载操作
│ │ │ │ FileController.java 管理端相关操作,查看文件列表,与es有关文件验证导入es
│ │ │ │ SearchController.java 文件搜索服务
│ │ │ │
│ │ │ ├─dto
│ │ │ │ └─es
│ │ │ │ FileEsModel.java ES传输模型 与mapping对应
│ │ │ │
│ │ │ ├─entity
│ │ │ │ FileCategoryEntity.java 文件实体
│ │ │ │ FileEntity.java 文件分类实体
│ │ │ │
│ │ │ ├─mapper
│ │ │ │ FileMapper.java 文件数据库dao
│ │ │ │
│ │ │ ├─service
│ │ │ │ │ DownloadService.java fdfs下载服务实现
│ │ │ │ │ FileSearchService.java es搜索服务接口
│ │ │ │ │ FileService.java 管理端查看、验证服务接口
│ │ │ │ │ UploadService.java fdfs上传服务实现
│ │ │ │ │
│ │ │ │ └─impl
│ │ │ │ FileSearchServiceImpl.java es搜索服务实现
│ │ │ │ FileServiceImpl.java 管理端查看、验证服务实现
│ │ │ │
│ │ │ ├─utils
│ │ │ │ FastDfsUtil.java 工具类(使用fastdfs-client-java时配置)
│ │ │ │
│ │ │ └─vo
│ │ │ SearchParam.java 前端查询参数封装
│ │ │ SearchResult.java 前端返回结果封装
│ │ │
│ │ └─resources
│ │ │ application.properties #数据源配置(改成自己地址)
│ │ │ application.yml #fastdfs 配置(改成自己地址)
│ │ │ docker安装es步骤.txt
│ │ │ fastdfs搭建步骤.txt
│ │ │ fdfs_client.conf 使用fastdfs-client-java时配置(本项目不用)
│ │ │ file-mapping.txt es mapping映射(与es交互前,需先在kibana中创建好)
│ │ │ file-search-demo.txt kibana中请求格式与响应格式
│ │ │ file.sql 文件sql
│ │ │ file_category.sql 文件分类sql
│ │ │
│ │ ├─mybatis
│ │ │ │ mybatis-config.xml mybatis配置文件
│ │ │ │
│ │ │ └─mapper
│ │ │ FileMapper.xml file 数据库crud
│ │ │
│ │ ├─static
│ │ │ index.html 上传下载前端测试页面
安装教程
拉下代码,改好配置,启动fdfs的tracker,storage,docker启动es,kibana
运行项目启动类
使用说明
浏览器输入localhost:8080即可进入index.html进行文件上传下载
localhost:8080/dbfile/list 查询文件列表
localhost:8080/dbfile/verify?fileId=xxx 进行文件上传es
http://localhost:8080/search/searchFileList?keyword=xxxauthor=xxx&categoryId=xxx 文件搜索
fdfs支持多节点部署,es目前单节点,但也可集群化,springboot单体也可微服务化,目前可满足大多数文件上传下载搜索功能业务,细化需求可自行开发
支持与交流
如果觉得项目有用,可以对孩子鼓励鼓励,一分两分不嫌少
或者可以加V交流哦~(加V请表明来意)
如果觉得《FastDfs与ElasticSearch和Mysql完成海量数据存储搜索功能》对你有帮助,请点赞、收藏,并留下你的观点哦!