SCI论文(www.lunwensci.com):
摘 要 :随着互联网技术和企业信息化的快速发展,企业对内部数据和文件的存储管理要求越来越高,为了满足企业对数 据存储管理和文件高效共享的迫切需求,通过分析企业内部网盘系统的需求,研究设计企业网盘系统的技术架构和功能模块。 采用基于 SpringBoot 的微服务架构,结合 OpenStack 和 Ceph 分布式文件系统搭建私有云环境,实现企业网盘的主要功能, 为企业提供安全稳定可靠高效的文件数据存储管理服务。
关键词 :微服务,私有云 ,企业网盘 ,分布式
Research and Application of Enterprise Internal Network Disk System Based on Microservices Architecture
ZHANG Ya'nan, QIN Zhiyuan, WANG Huipu
(Information and Digitalization Institute,China Railway Engineering Equipment Group Co., Ltd.,Zhengzhou Henan 450047)
【Abstract】:With the rapid development of internet technology and enterprise informatization, enterprises have increasingly high requirements for internal data and file storage management. In order to meet the urgent needs of enterprises for data storage management and efficient file sharing, the technical architecture and functional modules of enterprise network disk systems have been studied and designed by analyzing the requirements of enterprise internal network disk systems. Adopting a SpringBoot based microservice architecture and combining OpenStack and Ceph distributed file systems to build a private cloud environment, the main functions of enterprise network disks are achieved, providing secure, stable, reliable, and efficient file data storage and management services for enterprises.
【Key words】:microservice;private cloud;enterprise internal network disk;distributed
0 引言
随着互联网技术和企业信息化的快速发展,企业在 日常工作中会产生大量的数据和文件,企业对数据存储 的需求不断加大,提高数据存储管理效率和便捷性显得 极其重要。尤其是对于对保密等级要求高的重要大型企 业来说,采用基于微服务架构的企业内部网盘系统管理 企业内部文件和数据是合理的解决方案 [1,2]。企业网盘 系统能够帮助企业有效提升数据管理效率及增强文件存 储的安全性,同时系统还支持高访问速度、不间断地提 供数据共享服务。
1 微服务架构
1.1 微服务架构原理
微服务架构 [3,4] 是将原本在功能上整体合一的单体 服务拆分成多个微小的可独立部署服务,形成服务集群, 各服务间的业务是松耦合的,单个服务内部的业务是紧耦 合的,各服务间通过共享数据库的方式或者接口调用的方 式实现通信。微服务架构集成通常包含 4 个关键组件。
(1)服务注册与发现组件。此组件作为服务注册的 中心,协同工作的各个服务将自己的信息注册到此组件 上,让其他服务能够发现自己,从而正确地调用自己提供的接口。原理如图 1 所示。
(2)API 网关。此组件的基本功能是将用户请求转 发到正确的服务上进行处理,随后将处理结果返给用 户。随着技术迭代, 一些 API 网关已具备认证、鉴权, 限流、缓存、日志追踪等高级功能。
(3)消息总线。此组件负责在服务集群内进行消息广 播和事件触发,较为常见的模式是主题订阅、发布模式。
(3)配置中心。此组件能够以外部方式集中对集群 中各服务的配置文件进行管理,更新配置无需重启服务 即可生效。
1.2 微服务架构优势
得益于微服务的“独立性”和“专用性”特点,整 个系统可以在对外不完全关闭的情况下,对系统部分功 能进行停运更新,而不影响其他功能的正常使用,同时 能够定向地为当前承受压力较大的服务单独扩充资源, 提高性能,而不至于造成资源浪费。除了以上优点,微 服务的一个巨大优势是可以持续突破系统业务增长带来 的性能瓶颈和维护瓶颈,实现超大规模软件工程。微服 务将复杂业务切分成若干个简单业务,通过加大数量降 低实现难度,从而使系统能承载的整体业务量达到一个 更高水平。
1.3 基于 SpringBoot 的实现的微服务架构
Spring 是JavaWeb 领域中应用最广泛的框架之一, 它可以取代传统的 EJB,完成企业级应用建设。Spring 是基于 Web 容器的容器,它可以通过依赖注入的方式 将资源集中到容器中,在需要的地方通过注解的方式注 入到业务类。SpringBoot[5] 是 Spring 容器的封装和精简, 不仅具备 Spring 生态中的所有组件功能,还大大简化 了 Spring 复杂的配置,提供大量启动器,方便开发人 员快速创建微服务应用,结合 Maven 等项目构建工具, 可构建出轻量级微服务产品。本文所设计的微服务框架 通过高度抽象,具有普适性,服务模型如图 2 所示。
(1)前置过滤器。主要用于屏蔽非法请求、路由控 制、请求预处理,这里最常用的过滤器是跨域请求过滤 器,当系统采用前后端分离方式开发时,前端静态资源 部署在静态服务器上,直接访问后端数据是会被服务器 拒绝的,所以要对合法的跨域请求做预处理放行。路由 分组将服务器暴露的可访问路径分为用户(User)可访 问与访客(Guest)可访问两类, 公开接口属于访客可访 问,隐私接口均属于用户可访问。当有接口请求时,系统 根据请求携带的凭证判断用户身份,并同时判断当前访问 路径的属性,从而确定对于此请求应当接受还是拒绝。
(2)控制层。主要完成数据的校验,包括非空、数据 类型、格式、长度、数据大小、数值范围等。为保证服务 层能正常完成业务逻辑,控制层必须保障请求参数符合规 范,如果发现参数异常直接将异常抛给最终异常捕获类。 控制层能够通过 session 获取当前用户的角色集合和权限 集合,只有当接口权限在当前用户的权限集合内时才可以 访问接口,否则拒绝访问。在控制层,开发人员可以获取 请求类(Request) 和响应类(Response), 而这两个类 携带了整个请求过程中的二进制数据,开发人员可以通 过修改 Http Header 和 ContentType 属性完成流渲染, 当然也可以让服务层代理渲染。
(3)服务层。用来完成具体的业务逻辑任务,包括业 务处理的过程和算法、定时任务、数据库事务的提交和回 滚、并发任务执行、异步处理、线程同步加锁等。在服务 层中要实现的逻辑非常灵活,往往会构建一个基础工具包 为服务层及上游提供基础性功能支持。除了上述功能,服 务层还可用于和其他系统或者第三方平台做对接。
(4)数据层。系统的安全性除了要在控制层把控, 也要在数据层进行把控,为了使微服务框架更容易上云(SaaS 层),要求系统本身无扩展存储依赖,数据层设 计的主要目标是将系统中涉及的所有动态数据通过接口 存储到外部系统中,如数据库、图床、云盘等,这些外 部系统通常由更专业的研发人员设计实现,在安全性和 稳定性方面更可靠,又因为 Java 程序都运行在 JVM 之 上,框架搭建好后,开发人员无需在操作系统层面耗费 精力,只需考虑业务系统的实现即可。
(5)后置拦截器。用于处理 Web 请求过程中最外 层的异常捕获,这些异常往往是开发人员在实现业务逻 辑时容易忽略的地方。一次请求中可能会抛出各种异 常,这些异常大致可以分为 5 类 :1)认证异常,未认 证或 token 过期 ;2)权限异常,权限不足 ;3)业务逻 辑异常,需要展示给用户看 ;4)开发异常,需要打印 到调试窗口 ;5)未知异常,除了前四类的未捕获异常。 五类异常中前三类出现的频率较高,第四类和第五类在 开发结束后理论上是不允许出现的。
(6)容器配置。系统开发完成后在部署实施环节需 要给实施人员提供配置接口,微服务框架中的容器配置 就是给实施人员提供的全部接口,包括数据库连接的配 置、Web 启动参数配置以及系统中其他活动组件的配置。
2 云计算
2.1 云计算概述
随着当下服务器计算性能的大幅提升,云计算逐步 得到广泛的应用。和传统计算相比,云计算通过整合、 管理和调配计算资源向用户提供计算服务,所提供的服 务既可以是硬件基础设施,也可以是软件应用程序,还 可以是成熟的开发平台。它具有规模大、虚拟化、弹性 化、高可用等特点,从而大大降低了企业信息化建设的 运营成本,提高了企业快速响应业务变化的能力,加快 了企业信息化建设效率。
2.2 云计算的架构分层及服务类别
云计算的宗旨和本质是一切皆服务,根据所提供服 务的类型不同可分为软件服务、平台服务、基础设施服 务,这些服务构成了云计算的三层系统架构 [6]。
Iaas 层(基础设施即服务)为云计算架构的最底 层,向用户提供计算能力、存储能力或网络能力等 IT 基础设施类服务。用户租赁服务商的硬件环境,服务商 通常根据用户的实际使用量或实际占用量进行收费。
Paas 层(平台即服务)为用户提供完整的环境平 台,用来开发、部署、管理和运行用户自己的应用程序, 主要面向应用的开发及运维人员。
Saas 层(软件即服务)基于互联网面向用户按需 提供完整、可使用的软件服务。服务提供商为用户搭建信息化所需要的所有网络基础设施、硬件及软件环境, 负责软件的实施及维护,用户按需付费使用系统服务。
2.3 私有云的部署模型
根据云计算服务的用户来源不同,云计算可分为 4 类常见的部署模型 :公有云、私有云、社区云、混合云。 随着各行业信息化进程的加速,私有云市场得到快速发 展。私有云是在企业或组织内部搭建,供内部员工或特 定用户使用,由企业拥有和管理的云计算基础设施。由 于私有云服务位于企业内部网络,且所有的资源均为企 业自身所有,因此,私有云更加安全可控,常常被应用 于分支机构较多的大型企业或政府部门。
3 系统总体设计
3.1 企业内部网盘系统功能结构设计
本文网盘系统基于私有云存储空间实现企业传统文 件管理系统的功能,可为企业提供可靠安全的在线文档 管理,对优化企业作业流程起到了积极作用,提高了工 作的办公效率及质量,同时降低了企业的管理成本。从 功能方面设计考虑,本系统主要包括以下几个主要功能 模块,如图 3 所示。
(1)系统设置模块。基础设置主要对系统基础项进 行设置 ;存储空间管理主要用于分配部门及用户存储空 间 ;安全设置主要用于设置是否开启登录验证码及 crsf 保护。
(2)组织管理模块。系统用户主要分为管理员用户 和普通用户两种,其中管理员用户比普通用户的权限等 级高。管理员用户可以对企业的组织架构进行管理,还 可以新建普通用户账号并对其分配相应的角色及权限, 另外,对于同一文件 / 文件夹还可以针对不同的用户授 予不同的权限,同时也可以自定义授权及修改授权。管 理员对普通用户可以进行一些基本的设置操作,比如设 置 / 修改个人存储空间大小、修改密码、授权有效期等。
(3)文件管理模块。用户对文件 / 文件夹可以进行 新建、编辑、上传、下载、删除、复制、移动及重命名 等操作。文件可以查看所有修改的历史版本,且可追溯 至任一版本。系统还为用户提供了图片 / 音频 / 视频文 件的在线查看预览功能。
(4)分享管理模块。文件 / 文件夹可以通过 URL 外链的方式进行公开分享和加密分享,同时还可以通过 内部分享的方式仅供系统内部用户之间进行文件共享。
(5)传输列表模块。针对文件上传过程中存在的文 件上传异常的情况,系统设计了文件传输功能模块,可 以查看文件当前 / 历史文件的上传状态,便于对上传失 败的文件展开再次上传,且支持断点续传。同时系统还 可以查看正在下载 / 历史下载记录。
(6)消息管理模块。系统还具备消息通知功能, 当 用户授权发生变更及有文件分享时,用户会收到提示消 息,系统中小铃铛会显示通知数,点击小铃铛可以查看 所有的通知消息详情。
(7)个人中心模块。用户在个人中心模块可以对个 人信息进行编辑,比如修改头像、昵称、邮箱等 ;同时 还可以对个人的密码进行修改。
3.2 企业内部网盘系统的微服务架构设计
企业内部网盘系统架构 [7] 共 5 层,最上层是与用 户直接交互的终端服务, 主要指 Web 浏览器 ;其次是 代理层,这一层的主要功能是网络代理和安全防护,还 可在此层添加网络监控和限流等高级功能以满足业务需求 ;再下一层是服务层,此层包含整个网盘系统的核心 功能,对上为各个“终端”提供接口服务,对下管理整 个系统的虚拟空间 ;再下一层是数据层,此层保存了每 个用户的网盘数据信息、网盘空间容量、共享文件记 录、收藏夹等信息 ;最下层是物理层,对于整个网盘系 统,物理层即可以是集中式存储,也可以是分布式存 储,甚至是二者混合使用,物理层具有两个特点, 一是 提供基础的数据容灾保障,二是仅关注二进制流,执行 效率非常高 [8]。
在上述五层架构中,网盘服务和虚拟空间的作用最 为关键,网盘服务以微服务集群的形式搭建,服务中包 含注册中心、API 网关、消息总线、配置中心等通用组 件,还包含以下关键功能服务。
(1)WOPI 服务。WOPI, 全称 Web Application Open Platform Interface, 前端应用开放平台接口, 是由微软公司发布的基于前端实现 office 文档在线协同 编辑的标准,通过 WOPI 服务接口,用户可以在前端 页面上在线协同编辑、保存和共享 office 文档,而不需 要下载安装 office 软件。
(2)内容合规性审查服务。不同于传统的视频播放 网站,云网盘内容主要由用户自行上传,人工审查工作 量巨大,因此只能借助后台服务进行审查,通过关键字 扫描,过滤不合规的内容,禁止用户上传,并对已上传 的不合规内容进行冻结删除。
(3)版本管理服务。针对于文本或 office 文档,需 要保留历史版本以便能够在需要的时候进行追溯,因此 要进行版本管理,网盘管理员可以指定保留历史版本的 时间间隔或频次及其他规则。
虚拟空间保存了整个网盘系统的元数据,结合网盘 服务可以给用户带来非常好的体验。虚拟空间保存了每 个文件的 MD5 值,用于确定文件的唯一性,对于一些 不可编辑的文件,每个用户在私有文件中存储的仅仅是 该文件的不同链接,最终指向的仍然是同一文件,这样 做的好处是不必为每个用到此文件的用户在物理层单独 存一份相同文件,从而大大提高了物理存储的复用性。
4 系统实现与应用
4.1 开发环境介绍
本系统开发使用的开发工具和技术如表 1 所示。
4.2 系统关键技术介绍
4.2.1 基于 Vue 的 Web 前端框架设计
Vue[9] 是当前主流的前端三大框架之一,因其使用 简单,性能突出而流行,本系统使用 Vue 及其相关组 件建立了通用 Web 前端框架模型,其原理如图 5 所示。
为了与 SpringBoot 后台权限管理相结合,本系统 在用户登录后便获取用户所有权限标识,并按照路径树 构建了侧边栏导航及面包屑导航,并且在 VueRouter 进行视图切换时添加了拦截器,用于控制页面级权限, 同时在系统前端框架中加入了映射拓展策略,通过字典 映射方法将前端控件与后台资源桥接起来, 一方面可以 拓展后台资源的属性,另一方面将后台权限控制的粒度 精确到前端页面的元素级别。
状态管理工具 Vuex 本身是复杂的,涉及各种状态变 化及其监听器,包括同步的、异步的。为了简化对 Vuex 的控制,本系统将 Vuex 状态机简化成 k-v 存储模型,并 可以深度触发和监听 Vuex 状态。Vuex 本身的生命周期 只支持页面级别,页面刷新后会重载,在本系统中通过 整合 Vuex 和 Html5 的 sessionStore, 使 Vuex 只在关闭浏览器或退出登录时才会发生重载,延长了 Vuex 的 生命周期。
4.2.2 RabbitMQ 消息推送
为了使用户能够及时收到消息,本项目的微服务框架 集成了 RabbitMQ 作为消息中间件, RabbitMQ 稳定可靠 且具有高性能 [10],单服务节点能够支持 4 万连接并发读 取和 2800 连接并发写入的能力。在本项目中 RabbitMQ 主要用于扫码后页面跳转和实时接收服务器推送的消 息。为了实现在页面上实时接收消息,还需要建立基于 WebSocket 的通信协议,这里选择的是 Stomp 协议,需要 在 RabbitMQ 中安装webStomp 服务插件。WebSocket 不同于传统 Ajax 轮询,传统的 Ajax 每次请求都会携带 HTTP 协议头, 影响通信性能, 而 WebSocket 只在第一 次请求时携带 HTTP 协议头,之后的请求如果携带消 息则直接发送消息,如果不带消息则发送心跳包保持与 服务器端的链接通道。Web 页面与微服务框架通信原 理如图 6 所示。
5 结语
企业内部网盘系统有利于企业的信息化管理,该系 统能够根据不同用户的不同角色对文件和数据的权限进 行分别管理,提高了企业内部数据和文件的管理便捷 性、高效性和安全性。同时,员工在使用系统时,可以 直接通过浏览器访问系统,易于操作,使用简单,大大 提升了企业员工的工作效率。
参考文献
[1] 郑晓东,郑业爽,姜言秋.企业网盘系统设计与实现[J].信息技 术与信息化,2022(9):110-113.
[2] 王雨倩.基于分布式存储的云网盘系统的设计与实现[D].成 都:电子科技大学,2023.
[3] 辛园园,钮俊,谢志军,等.微服务体系结构实现框架综述[J]. 计算机工程与应用,2018,54(19):10-17.
[4] 王义.微服务架构特点、技术趋势及在行业应用中关键问题 研究[J].软件,2020,41(6):132-136.
[5] 霍福华,韩慧.基于SpringBoot微服务架构下前后端分离的 MVVM模型[J].电子技术与软件工程,2022(1):73-76.
[6] 唐涛,田谨源,朱力,等.基于OpenStack的城市轨道交通高可 用私有云平台研究[J].中国安全科学学报,2022,32(6):137-143.
[7] 王圆圆.基于联想云存储智能企业网盘的设计与实现[D].北 京:北京交通大学,2020.
[8] 陈法河,柴小丽.基于Ceph存储系统的小文件存储优化方案 [J].计算机系统应用,2022,31(2):108-113.
[9] 肖程鸣,曾志颖.基于Spring Boot和Vue的红色智慧旅游平 台设计与实现[J].软件,2022,43(7):30-33+38.
[10] 余永城,翁秋华,段卿,等.RabbitMQ在气象通信系统中的 应用研究[J].计算机技术与发展,2020,30(4):216-220.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/77108.html