基于SpringCloud微服务的Hdfs分布式大数据实现的企业网盘系统
随着信息网络技术的迅猛发展,云计算技术从它的概念提出已经开始在实际生产环境中使用了。大部分的东西都已经慢慢云端化,这种新型的技术也受到许多互联网人员的关注,网盘产品的诞生也是建立在云计算的基础之上的。互联网相关的公司不断增多,这些公司内部每天都进行着数据的产生和流动,由于公司的人员和公司业务的扩大,员工之间传输资源文件也变得更加频繁了,而通过传统的移动设备来进行资源传播,存在着许多问题,首先移动设备的使用寿命是有限的,而且通过传统方法来共享资源的话,用户一定要将该移动设备转交给另个用户。除了移动设备外,大家也经常使用发送电子邮件方式来传输文件,但是大型的文件是不支持的。随着数据量不断增大,传统的网盘已经不能很好满足企业的需求,无论是在文件的传输速度上,还是文件保密性都存在一定得缺陷。不过,现在市面上有一些企业做网盘服务,比如腾讯公司和百度公司,但他们的产品太过于商业化,数据的隐私和购买服务的价格都不太理想。因此,根据目前企业网盘发展状况,我们急需设计一个符合企业的网盘系统,该系统能够提供超大容量、高可用的存储服务,帮助企业更高效管理内部的资源。
在这个大数据和云计算时代,海量数据的存储面临着一个难题,因此有些企业先对这个问题进行了研究,谷歌也做出了很大的贡献,它开发了一套文件系统,通过现有的技术和各种资源,做到可以在多台电脑上进行分布式存储,这样的设计方式更好的满足了大数据存储的需要。谷歌分布式文件系统不是开源的,HDFS分布式文件存储系统对此进行了实现并向大众公开源码,让大家参与进来。HDFS系统部署的机器没有什么特殊要求,另外Hdfs集群有许多优秀的设计模式,我们可以用它以更低的成本实现更多数据的传输,所以本系统最终选用Hdfs作为资源文件存储文件系统。
本企业网盘系统也提供了许多实用的功能和友好的界面,整个系统的架构可以快速满足企业的发展需求。当企业员工共享文件时,可以有效地提高工作效率,用户产生的文件会在后台进行一个处理,该处理对用户是无感的。此外,我们将产生的文件都存放到Hdfs文件系统,该文件系统也提供了非常强大的平台,我们可以对存储的文件进行各种计算处理,而且该系统会将文件备份成3份,就算系统文件丢失,我们也有办法进行恢复。咱们也希望通过本次毕业系统设计,让我们能够将多种技术进行整合,加强了对常用的开发工具,各种开源办公平台的使用。系统的整体结构体如图1所示:
图 1 系统架构图
本次企业级网盘系统的开发与完成主要分为前端和后端二大部分,前台主要为企业用户服务的,企业的员工可以管理自己的网盘,如果自己有比较好的资源文件可以加入到企业共享网盘,这样企业每个用户都有权限下载、在线查看文件,除此之外,也可以把自己的资源文件通过用户分享或者链接分享的方式发送给用户。系统后台用户可以对系统角色进行编辑和分配,控制用户的管理权限,管理企业共享网盘里面的资源文件等,具体模块功能如下:
前台:
(1) 用户登录,本系统用户可以通过账号登录,短信登录,还可以通过QQ扫码登录,如果用户忘记了密码,验证通过后,可以找回密码。
(2) 个人中心,用户可以修改自己的信息,绑定扫描登录的QQ号。
(3) 系统通知,后台管理员通过后台系统发布系统通知,然后通知会通过推送的方式发送给前台用户。
(4) 网盘管理,每个用户系统会分配一个网盘给他,用户可以在分配的网盘里面创建文件夹,上传各种格式的文件,文件下载,文件重命名,文件复制,文件删除。除此之外,用户可以在线浏览文档,图片和视频等多媒体资源。
(5) 企业内部资源查询,用户可以把自己个人好的资源加入到企业内部共享网盘,例如,自己总结的或者看到的优秀的技术文档,或者一些有技术含量的开源项目、开发工具等。在上方的输入框可以通过输入关键词对资源进行模糊查询。
(6) 分享管理,用户可以把自己一些好的资源分享给企业其他用户,可以通过搜索相关的用户,然后将资源分享给他,也可以通过生成一个code,然后拼接一个url进行分享。
(7) 关注用户,自己感兴趣的一些用户可以进行关注,当关注的用户发布他们的资源,关注他的用户可以在动态里面看见。
后台:
(1) 用户登录,这里提供了多种登录的方式,如账号登录,扫码登录,短信登录,方便用户登录网盘系统。
(2) 首页数据大盘,系统管理员可以通过可视化的界面查看企业内部用户使用该系统的活跃折线图,资源下载排行榜,资源受欢迎程度排行榜。
(3) 用户管理,本次毕设系统面向两类用户人群,一类是前台用户,管理员可以通过导入Excel的方式批量添加用户,也可以一条一条添加,而后台用户只能单条添加。管理员可以对用户信息分别进行编辑,删除操作。
(4) 部门管理,企业刚开始使用系统时,需要将企业部门相关信息完善,后台提供了非常
友好的界面和操作方便管理员录入。
(5) 角色管理,系统超级管理员可以添加多个角色,然后分别给角色分配权限,该权限包过系统后台菜单的权限和部门之间的数据权限,保存之后即可生效。
(6) 企业共享网盘资源管理,后台管理员可以管理企业内部用户上传在共享网盘上的资源,可以将一些劣质的,对企业无关的资料进行清除。
(7) 系统管理,管理员可以动态的增加,删除,修改菜单,给菜单分配对应的权限,这样设置的好处是可以将不同的菜单功能面向不同的用户人群;在该模块下的定时任务配置管理界面中,用户可以配置Corn表达式,来定时触发需要执行的代码。系统管理员在日志管理里面查看所有的系统日志,如果系统监控一些奇怪的请求,系统会及时将相关异常信息通过邮件发送给管理员。
(8) 其他管理,系统对后台所有提供的接口生成一个在线接口文档,对系统开发人员,和系统以后的维护有重要的意义。
(9) 系统监控,在该模块下有服务器监控,Sql监控,Hadoop监控,SpringCloud微服务注册中心监控。
本次毕业设计系统采用SpringCloud,首先需要将所有的服务启动,然后注册到服务注册中心,服务之间可以互相调用,访问的协议是Http。最后引入API Gateway作为轻量级网关,该网关处理分发前端的请求,通过JSON数据返回给前端。为了保证该系统信息的保密性,访问该系统所有的用户都需要进行权限校验,只有校验成功的用户才可以成功跳转到系统主界面。然后在拦截器里面根据用户ID去用户角色表和用户菜单表查出用户可以访问的菜单权限和数据权限,从而给用户展示不同的界面,系统角色功能如下:
(1) 企业普通员
该用户通过前台系统登陆后,进入系统首页,首页会有个图表展示,登陆用户可以清楚知道自己网盘里面的文件数和分享的文件数,右侧也会有个企业员工分享排行榜,然后用户可以分别操作网盘,分享,资源库,关注用户,个人信息修改,系统通知这几个模块。在我的网盘管理模块中,用户可以通过用户或链接的方式将自己的资源分享给其他的用户,也可以将文件发布到企业共享网盘里面。只要是在企业里面的员工都有权限查看企业的共享网盘,可以在线查看共享网盘里面的文件,下载到自己本地。
(2) 管理员
用户通过后台入口登陆后台系统,系统通过账号自动检测用户的类型,管理员登陆后,会根据管理员所拥有的菜单权限和部门数据权限控制用户所能看到的后台界面和查询数据的范围。管理员可以添加前台用户,然后给用户分配部门和所拥有的角色,另外还有网盘管理模块的权限,在网盘管理这个模块中,管理员可以查看企业共享网盘里面所有的资源文件,并有权修改文件信息,规范网盘。
(3) 超级管理员
系统超级管理员默认账号是admin,密码是asdf123。超级管理员登录系统后,管理员,如果是超级管理员,会跳过过滤器的校验。除此之外,超级管理员可以添加系统后台用户类型,动态配置后台菜单和对应页面按钮的权限,添加系统角色类型,添加企业部门相关信息。除了管理员有的功能外,超级管理员有权查看系统相关的日志,定时任务,公告管理,数据库监控,Hadoop分布式存储集群监控,微服务监控。
企业网盘系统的使用者分为企业普通员工和企业管理员,所以进行的基本处理流程是不一样的。企业普通员工进入本系统前台主界面后看到的是首页数据大盘,系统右上角有用户的头像和系统公告通知。在首页顶部的位置有个欢迎用户功能,此模块会根据用户登录的时间,人性化的对用户进行打招呼,比如用户深夜的时候登陆系统,该提示语会提醒“已经深夜了,你还在加班吗,请注意休息!”。当用户点击我的网盘模块后,系统首先会请求一次接口,展示自己网盘里面的文件,该用户可以对文件进行相关的操作。在分享模块中,用户可以选择不同的tab栏,分别对已共享、已接收的文件进行查看。当用户进入存储库模块时,单击不同的文档分类以查看已分类的文档,可以对文件进行查询,预览和下载。系统管理员发布通知后,系统前台会在系统右上角进行消息条数的提醒,点击消息红点后,会出现通知下拉列表框,再点击下拉列表里面的查看更多,可以进入更多模块下的系统公告列表页面,在该页面里面,用户可以通过标题关键字,公告发布的时间范围进行搜索,在更多模块下用户可以动态切换系统主题,然后让用户无感知的记录用户行为,当用户退出登录后重新登录,系统的主题还是用户退出登录时所选择的主题。
管理员和超级管理员成功登入系统后台后,默认会调到Index页面去,在该首页,我们可以看到登录用户、服务器运行相关信息。在数据大盘模块,可以看到最近上传文件的数量,以及最近一段时间的上传曲线图。系统超级管理员可以管理系统所有的功能和所有用户,如果需要控制系统用户能访问的菜单,系统管理员只需更改相关角色所拥有的菜单列表。系统基本处理流程如图2:
图2企业网盘系统基本处理流程
参考文献
[1]方志鹏.深入理解Spring Cloud与微服务构建 [M].北京:人民邮电出版社,2018.3第1版.
[2]林子雨.大数据技术原理与应用 [M]. 北京: 人民邮电出版社,2017.1第2版.
[3]王松.SpringBoot+Vue全栈开发实战 [M]. 北京:清华大学出版社,2018.12.
[4]Tom White著,王海,刘喻等译.Hadoop权威指南第四版 [M].北京:清华大学出版社,2017.
[5]汪云飞编著,JaveEE开发的颠覆者SpringBoot实战.北京:电子工业出版社,2018.
[6]杨保华,戴王剑等著,Docker技术入门与实战 [M].机械工业出版社,2018.9.
[7]陈中,范开勇著,基于Hadoop分布式交通大数据存储分析平台设计 [J].大数据,2018.12.
[8]邹立民.基于Hadoop的分布式数据存储系统应用的研究[D].沈阳工业大学,2018.
[9]S.K.Lakshmanaprabu,K.Shankar,S.Sheeba Rani,Enas Abdulhay,N.Arunkumar,Gustavo Ramirez,J. Uthayakumar.An effect of big data technology with ant colony optimization based routing in vehicular ad hoc networks:Towards smart cities[J].Journal of Cleaner Production,2019,2.17.
[10]Mihai Varga,Alina Petrescu-Nita,Florin Pop. Deadline scheduling algorithm for sustainable computing in Hadoop environment[J]. Computers & Security,2018,7.6.
[11]明日科技.Java从入门到精通.第五版.清华大学出版社.2019.
[12]贺伟,李凤. 基于项目驱动式教学的《Java面向对象程序设计》课程实践[J]. 计算机产品与流通,2019(01):263-264.
[14]陈实.后MOOC时代移动学习视角下的翻转课堂设计—以《JAVA程序设计》为例[J]. 中国多媒体与网络教学学报(上旬刊),2019.
[15]谢金星.基于云存储的网盘系统设计与实现[D].湖南大学,2017.
[16]王韬. 基于版本控制的网盘研究与实现[D].电子科技大学,2018.
[17]杨强,张钧鸣.基于微服务架构的大数据应用开发创新实践[J].电力大数据,2019:71-76.
[18]方意,朱永强,宫学庆.微服务架构下的分布式事务处理[J].计算机应用与软件,2019:152-158.
[19]樊雷.基于Docker的企业级微服务架构设计[J].电脑知识与技术,2018,14(34):25-26.
[20]刘梦飞.我国网盘版权保护问题研究[J].常州工学院学报(社科版),2018,36(04):101-105.
[21]乔晓飞.计算机硬件储存设备与网络储存的发展现状[J].信息与电脑(理论版),2018(08).
[22]陈禹新.个人云储存服务的发展现状与趋势研究[J].福建电脑,2017,33(08):46-47.
[23]范晓玲.基于云存储的高职院校网盘系统设计与实现[J].河北软件职业技术学院学报,2017.
[24]康双勇.信息安全小百科,云存储与信息安全[J].保密科学技术,2017(05):69.
[25]原建伟.中小企业云盘系统的设计与实现[J].电子设计工程,2017,25(07):70-74.
[26]陈韶健.SpringCloud与Docker高并发微服务架构设计实施[M].北京:电子工业出版社,2018-06-01.
[27]林意群.深度剖析Hadoop HDFS [M]. 北京:机械工业出版社,2017年08月.
[28]张帆.Vue.js项目开发实战 [M]. 北京: 机械工业出版社,2018年07月.
[29]闫伟,陈满林,白云鹤,班海涛.基于Hadoop的校园网盘的设计与实现[J].科技创新与应用,2015.
[30]张晓杰. 基于HDFS的可信分布式文件系统研究与设计[D].华南理工大学,2017.