仿百度网盘的一款轻量级微服务架构网盘系统
Java面试笔试面经、Java技术每天学习一点
公众号Java面试
关注我不迷路
作者:996学院
来源:https://gitee.com/college996/zwz-netdisk
一、前言
在gitee和github里面基本上找不到一款好用、功能完善、且开放源码的网盘系统,有一些可以免费试用但是只提供安装包,于是在利用业务时间开发了一套轻量级且易于上手的网盘系统,主要基于目前主流的前后端分离和微服务架构模式开发,里面涉及很多的解决方案,适合没有项目经验的同学学习
。
网盘系统的核心目的有两个:
提供客户端给业务系统集成,统一管理业务系统的文件;
提供在线协调办公、管理个人文件的功能。系统会陆续更新和完善一些功能。
二、部署架构说明
三、技术栈说明
前端技术
①vue.js+ElementUI 作为基础技术框架
②WebUploader.js做切块上传框架
后端技术
①Maven+SpringBoot+SpringDataJPA作为基础架构
②Dubbo+Zookeeper作为服务治理架构
③Nacos作为配置中心
④Redis做分布式缓存、过期监听
⑤Zookeeper做分布式锁
⑥WebSocket+Netty做消息推送
⑦Solr做全文检索引擎
⑧FastDFS做分布式文件系统
⑨基于Redis+token+自定义注解实现接口幂等性
四、功能说明
1、网盘系统
①上传功能:主要是针对大文件的切块上传、秒传、文件夹上传
②下载功能:主要是大文件的切块下载;多文件(夹)合并、压缩下载
③文件分享:文件分享包括好友分享、私密链接分享、分享文件的转存
④相册管理:可以建立不同的相册来管理图片,并且可以图片在线预览功能
⑤回收站:删除的文件进入回收站,可以进行还原或者彻底删除
⑥推送功能:主要是好友分享消息推送、过期消息推送、容量更新推送
⑦分布式锁:主要是基于Zookeeper实现分布式锁,保证高并发情况下系统的数据安全
⑧过期监听:主要是基于Redis过期事件实现监听功能,包括:分享失效监听、删除过期监听等。关注公众号[Java面试]获取更多面试资料
⑨日志采集:通过AOP埋点的方式进行采集用户请求日志,并远程传输到日志服务端;自定义Dubbo的Filter实现
链路ID
的生成⑩文件搜索:集成Solr框架实现全文搜索功能
⑪文件存储:集成FastDFS框架实现文件分布式存储
⑫其他琐碎功能:比如,复杂、移动、预览、删除、重命名、在线创建、在线编辑、编辑历史版本留痕等等
⑬Office在线编辑: 后期更新
⑭h5版本客户端: 预计4月25号更新
⑮c/s版本客户端: 后期更新
⑯业务系统API客户端:【 已经完成】
⑰图片新增水印: 后期更新
⑱图片在线裁剪: 后期更新
2、后台系统
①组件管理:主要管理文件的预览和编辑组件
②类型管理:主要是管理文件的格式、对应的图标、对应的预览和编辑组件
③日志管理:存储和展示业务系统的操作日志记录,并且可以根据
追踪ID
来关联所有的日志信息
五、项目地址
https://gitee.com/college996/zwz-netdisk
仿百度网盘的一款轻量级微服务架构网盘系统相关推荐
- 一款轻量级微服务架构网盘系统,你Get了吗
一.前言 在gitee和github里面基本上找不到一款好用.功能完善.且开放源码的网盘系统,有一些可以免费试用但是只提供安装包,于是在利用业务时间开发了一套轻量级且易于上手的网盘系统,主要基于目前主 ...
- 跟着《架构探险》学轻量级微服务架构 (一)
架构探险 微服务概念这两年已经火遍大江南了,但在实际的开发和使用中,用到的还是挺少的,尤其对创业团队来说. 在上一个产品中,我们也在把传统的开发模式,不断往「微服务」方向靠拢.但终究还是处于学习阶段. ...
- 架构探险-轻量级微服务架构_第3部分-单活动架构+一些时髦的Dagger
架构探险-轻量级微服务架构 This series takes a basic MVP app using Retrofit and RxJava to display a list of Githu ...
- 轻量级微服务架构【读书笔记2】
1. Spring Boot 是什么(What) Spring Boot 是为生产级 Spring 应用而生的,它使得开发 Spring 应用程序更加高效.简洁. 1.1 由来 Spring 1.0 ...
- 轻量级微服务架构实践之路
架构图: 工具箱: 转载于:https://www.cnblogs.com/davidwang456/articles/9218846.html
- python微服务架构设计模式_微服务架构设计模式 PDF 电子书 百度云 网盘下载
你还没有注册,无法下载本站所有资源,请立即注册! 您需要 登录 才可以下载或查看,没有帐号?立即注册 x java自学网(http://www.137zw.com)-java论坛,java电子书推荐: ...
- C++轻量级微服务_微服务技术栈:API网关中心,落地实现方案
一.服务网关简介 1.外观模式 客户端与各个业务子系统的通信必须通过一个统一的外观对象进行,外观模式提供一个高层次的接口,使得子系统更易于使用: 简单说一下外观模式,网关和这个模式很像,但是比外观模式 ...
- 网易蜂巢微服务架构:用RabbitMQ实现轻量级通信
本文根据第60期线上分享整理而成,文末还有书送哦~ 本次分享内容由三个部分组成: 微服务架构与MQ RabbitMQ场景分析与优化 RabbitMQ在网易蜂巢中的应用和案例分享 微服务架构是一种架构模 ...
- C++轻量级微服务_从微服务架构解析信源新一代“金融e采”产品
金融电采,信源信息 信源信息从事电子化采购软件开发已经有15个年头,进行金融保险类采购系统的开发也已经有十多年了. 信源信息针对金融领域客户量身定做的"金融e采"产品线,以前瞻的技 ...
最新文章
- 第六章 逻辑回归-机器学习老师板书-斯坦福吴恩达教授
- chapter14 机器学习之利用SVD简化数据
- 面试官再问高并发,求你把这篇发给他!
- jer中无html文件,index.html
- 前端学习(740):函数返回值注意事项
- python-变量操作-字符串
- 探究position定位中absolute和relative的异同
- 一个 Python 报表自动化实战案例
- 中文版Latex常用语法大全教程
- 树莓派交叉编译USB转网卡驱动_incomplete
- 用cmd命令行下载github中的工程文件
- 1.17 “干项目太累,那是因为姿势不对” Stacey矩阵
- 两狗(sogou google)相争,必有一伤
- 修改Element-ui表格样式
- web中的$多种意思
- bash破壳漏洞分析(二)
- oracle判断字符串以什么开头_oracle 如何查找特定字母开头的某个字段?
- Vue详解及综合案例
- python人工智能课程实例_python人工智能AI深度学习/机器学习全套课程 视频教程+ppt+代码...
- Linux下的网络设备驱动
热门文章
- Linux系统安装Chrome浏览器、CentOS安装google浏览器简单教程
- 6年拉力工作经验,学了阿里P8级架构师的7+1+1落地项目,跳槽阿里年薪直接40W+
- 安利【1】-PDF翻译工具
- 趣味职场俚语笔记(01_Debbie Talks Shop)
- 获取ckeditor的内容
- 《Android源码设计模式解析与实战》读书笔记(二十四)
- java.lang、java.io、java.net、java.util解释整理
- 嵌入式linux驱动开发--设备资源描述
- 计算机报录比多少算高,报录比多少合适?怎么算好考?我来告诉你答案
- 基于Linux的音乐音效软件,在Arch Linux系统上可用Pipewire取代PulseEffects音效软件