CN114253929A - 一种基于分布式文件存储的网盘系统架构 - Google Patents
一种基于分布式文件存储的网盘系统架构 Download PDFInfo
- Publication number
- CN114253929A CN114253929A CN202111350519.9A CN202111350519A CN114253929A CN 114253929 A CN114253929 A CN 114253929A CN 202111350519 A CN202111350519 A CN 202111350519A CN 114253929 A CN114253929 A CN 114253929A
- Authority
- CN
- China
- Prior art keywords
- file
- storage
- record
- files
- entity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 37
- 238000005516 engineering process Methods 0.000 claims abstract description 21
- 238000013507 mapping Methods 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 14
- 230000007246 mechanism Effects 0.000 claims abstract description 10
- 238000007726 management method Methods 0.000 claims description 61
- 230000006870 function Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000002688 persistence Effects 0.000 claims description 3
- 230000008447 perception Effects 0.000 claims 1
- 239000002699 waste material Substances 0.000 abstract description 4
- 238000012217 deletion Methods 0.000 abstract description 3
- 230000037430 deletion Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000000306 component Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于分布式文件存储的网盘系统架构,属于计算机软件领域。本发明建立了目录、文件的逻辑映射模型。相较于业务系统自身的文件管理,本发明提供了更加灵活清晰的树状分层管理结构,支持新建、删除、复制、移动等近本地化操作,同时支持文件上传、分享、下载操作。通过分块上传、并行机制、断点续传和闪传技术,大大提高文件传输速度和成功率,减少文件传输时间和成本。以用户为管理对象,提供文件统一存储和管理,支持不同范围文件共享,提高文件复用率,达到一文多用的目的,支持用户存储容量的灵活配置,减少前期存储资源投入和浪费。
Description
技术领域
本发明属于计算机软件领域,具体涉及一种基于分布式文件存储的网盘系 统架构。
背景技术
随着信息技术的不断发展,各单位陆续建设了各种各样的业务信息系统, 然而,随着业务系统不断增多和用户使用量逐渐提升,一些文件存储和管理的 问题也逐渐暴露出来。首先,在应用系统逐渐投入使用后,系统产生的文件数 量将飞速增长,而针对海量文件的存储,传统磁盘支持的空间有限,在文件超 出容量后,扩展的磁盘数量和总容量受限。其次,不同应用产生的文件存储在 不同的目录或磁盘上,存在文件冗余,存储分散,不易管理的问题。最后,由 于应用系统间的数据隔离,文件在不同用户之间复用率低。
多业务系统产生的文件存储和管理是单位面临的一个难点问题。目前,主 要策略就是通过底层磁盘空间规划来达到各应用系统文件管理相对有序,并由 各系统自身进行文件维护。此外,文件数据作为单位的一项重要资源,主要通 过系统间接口调用的方式实现文件资源在不同用户间共享和传递,这种方式效 率低下,接口开发工作繁琐,且容易造成系统间关系混乱,不利于文件管理和 利用。
针对海量文件存储,现有分布式文件存储技术提供一种可行的实现方案, 它通过网络使用每一台计算机上的存储空间,并使这些分散的存储空间为业务 系统提供统一存储,且具有灵活的伸缩性和高可靠性。本地文件系统是一个成 熟而完善的文件管理系统,核心组件包括卷、目录和文件,并以分层结构放置, 实现了文件有序管理,为网盘系统的文件管理提供一种参考模型。此外,网盘 系统的文件管理与本地文件管理相比也有其特殊性,它并不与具体的存储磁盘 关联,也没有本地的卷、目录、文件等组件,而是通过模型和对象映射的方式 提供一种近本地化的文件管理和操作。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种基于分布式文件存储的网盘系统 架构,以解决现有的文件存储和管理效率低下,接口开发工作繁琐,且容易造 成系统间关系混乱,不利于文件管理和利用的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种基于分布式文件存储的网盘系统 架构,该架构包括如下4层:基础环境、存储和消息、网盘系统和客户端/浏览 器;
基础环境:采用通用的硬件服务器、操作系统、编译环境和开发环境,为 上层存储、缓存、消息、应用提供运行支撑;
存储和消息:采用分布式文件存储技术为海量文件的落地存储和冗余备份 提供支持;采用关系数据库技术支持应用数据持久化,并使用旁路缓存技术提 供数据缓存功能;采用消息队列实现服务间通信,以订阅发布的模式,实现消 息在服务间异步传输,解耦不同服务间的业务功能调用,有效提高核心业务功 能处理速度,非核心业务在空闲时再进行处理;
网盘系统:是架构中核心业务实现层,按照业务功能,采用微服务架构将 网盘系统划分不同的服务模块,各服务模块独立部署运行,采用RESTFUL风格 接口,通过网关对外提供统一的文件上传、存储、管理、搜索、共享、回收、 预览功能,实现目录和文件的树状分层结构;核心业务功能采用FeignClient 同步调用方式进行通信,同步执行,共同协作,非核心业务采用消息队列实现 异步调用、分散处理;
客户端/浏览器:业务系统用户通过客户端/浏览器访问网盘系统,并基于 http协议采用请求-响应模式完成与服务端交互和数据传输。
进一步地,网盘系统的文件上传包括分块上传,具体地,将一个大文件, 按照固定大小,切分为多个小分块文件,并为每一个分块文件编号,表示该分 块文件先后顺序,再将每一个分块作为独立文件通过http请求传输到服务器端; 服务器端收到分块文件后,将每一个分块文件按确定的分块顺序缓存在一个临 时目录,等待所有分块上传完成后,通过一个合并请求将所有分块合并为一个 完整的大文件,并保存到分布式文件存储服务器上。
进一步地,网盘系统的文件上传包括并行机制,具体地,针对大文件上传, 客户端和服务器端可同时采用多线程并行工作方式进行分块上传。
进一步地,网盘系统的文件上传包括断点续传,具体地,文件在上传出错 失败后,直接从出错分块开始继续上传,不需要整个文件重新上传。
进一步地,网盘系统的文件上传包括闪传,具体地,采用文件探测技术, 即在文件上传前,发送一个http请求用于探测当前需要上传的文件在服务器端 是否已经存在,若已经存在则直接返回上传成功,并添加数据记录,若不存在, 则进行文件上传。
进一步地,核心业务之间采用FeignClient同步调用方式进行通信,互相 协作,业务之间形成强耦合;被调用方需按约定定义好相关服务接口和参数, 并以sdk方式打包发布给服务调用方,调用方在加载sdk开发包后,调用相关 接口方法将消息传递给被调用方,并等待被调用方业务处理和响应。
进一步地,非核心业务采用消息队列实现异步调用、分散处理,业务服务 与消息队列之间采用主题/订阅模式实现消息的传输和接收;消息提供方产生消 息并将消息发送到指定主题队列,然后继续处理后续业务;消息接收方,订阅 相应主题,从主题队列中接收提供方发送的消息,然后进行相关计算处理。
进一步地,网盘系统的文件管理采用文件管理模型,文件管理模型为网盘 系统建立了核心的目录、文件逻辑映射结构,提供树状分层管理结构,支持近 本地化操作,支持用户存储容量的灵活配置。
进一步地,网盘系统的文件管理模型采用实体文件记录和逻辑盘相结合的 方式;实体文件记录,与实体文件对应,对每一个上传的实体文件记录其名称、 大小、类型、存储路径信息,并持久化到实体文件表;在实体文件表中,一个 实体文件记录通过记录中的存储路径,能定位到文件存储服务器上唯一一个文 件实体;实体文件记录是文件管理模型对文件存储服务器上所有文件建立的一 个映射;
逻辑盘,在实体文件记录基础上,以用户为管理对象,对每个用户私有文 件和文件夹进行管理,提供灵活清晰的树状分层管理结构,支持用户存储容量 的灵活配置;逻辑盘以逻辑记录作为最小操作实体,分为文件和文件夹两种类 型的记录;逻辑文件记录,是存储在逻辑文件记录表中的一条逻辑记录,唯一 对应一条实体文件记录;从逻辑文件记录到实体文件记录,再通过存储路径到 文件存储服务器上的实体文件,文件管理模型实现逻辑文件到实体文件映射层 级结构;用户在对文件进行移动、删除、复制操作时,实质是在操作逻辑盘中 的逻辑记录,其对底层的具体实现细节、实体文件记录、文件存储服务器无感知;
逻辑文件夹记录,是逻辑盘中树状分层结构实现的关键;作为纯粹的逻辑 结构,它仅是逻辑记录表中一条数据,并不与任何实体对应;通过父子关联的 方式,逻辑文件夹实现了上下层级结构,以“/”作为唯一的顶级文件夹,其他 文件夹以子节点或孙子节点的方式直接或间接与其关联,且一个父节点可以有 多个子节点,而一个子节点仅有一个父节点;此外,在逻辑文件夹形成的树状 分层结构中,所有逻辑文件必须唯一关联一个逻辑文件夹,以实现文件分类和 层级化管理;
逻辑盘的容量管理,是以数据记录的方式实现,并不反映真实磁盘存储空 间,支持灵活的配置和扩容;以用户为管理对象,系统存储容量是一个逻辑容 量,对真实磁盘存储空间无严格要求。
进一步地,网盘系统的文件共享采用文件共享模型,文件共享模型采用在 逻辑盘上增加逻辑共享层的方式,实现文件在不同用户、不同部门、不同单位 间共享的功能。逻辑共享层以逻辑盘中的文件为基础关联用户、部门或单位记 录,形成新的一条逻辑共享记录,并持久化到共享记录表,实现了从共享记录 到逻辑文件记录、实体文件记录、文件存储服务器的全链路映射结构,达到了 一文多用的目的。
(三)有益效果
本发明提出一种基于分布式文件存储的网盘系统架构,与现有技术相比, 本发明提出了一种基于分布式文件存储的近本地化文件操作和管理模型设计, 建立了目录、文件的逻辑映射模型。相较于业务系统自身的文件管理,本发明 提供了更加灵活清晰的树状分层管理结构,支持新建、删除、复制、移动等近 本地化操作,同时支持文件上传、分享、下载操作。通过分块上传、并行机制、 断点续传和闪传技术,大大提高文件传输速度和成功率,减少文件传输时间和 成本。以用户为管理对象,提供文件统一存储和管理,支持不同范围文件共享, 提高文件复用率,达到一文多用的目的,支持用户存储容量的灵活配置,减少前期存储资源投入和浪费。
附图说明
图1为本发明的整体架构图;
图2为本发明的文件上传模型图;
图3为本发明的断点续传流程图;
图4为本发明的闪传流程图;
图5为本发明的消息通信结构图;
图6为本发明的文件管理模型图;
图7为本发明的文件共享模型图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本 发明的具体实施方式作进一步详细描述。
本发明的目的就是提出一个能够利用现有的分布式文件存储技术将多系统 用户资源文件统一管理的网盘系统设计,并提供近本地化操作和管理方式。
1.整体架构
图1为本发明的整体架构图,如图1所示,整体架构包括如下4层:基础 环境、存储和消息、网盘系统和客户端/浏览器。
基础环境:通用的硬件服务器、操作系统、编译环境和开发环境(包括JDK8 环境和GCC环境)为上层存储、缓存、消息、应用提供运行支撑。
存储和消息:采用分布式文件存储技术为海量文件的落地存储和冗余备份 提供支持;关系数据库技术支持应用数据持久化,并使用旁路缓存技术提供数 据缓存功能,减少磁盘IO,提高访问速度,降低数据库访问压力;消息队列是 一种实现服务间通信的主流方式,以订阅发布的模式,实现消息在服务间异步 传输,解耦不同服务间的业务功能调用,有效提高核心业务功能处理速度,非 核心业务可在空闲时再进行处理。
网盘系统:是架构中核心业务实现层。按照业务功能,采用微服务架构将 网盘系统划分不同的服务模块,各服务模块独立部署运行,采用RESTFUL风格 接口,通过网关对外提供统一的文件上传、存储、管理、搜索、共享、回收、 预览等功能,实现目录和文件的树状分层结构。近本地化文件操作和管理,简 化了用户的使用,减少了学习成本。核心业务功能采用FeignClient同步调用 方式进行通信,同步执行,共同协作。非核心业务采用消息队列实现异步调用、 分散处理,减少服务器资源压力,提高核心业务的处理速度和效率。
客户端/浏览器:业务系统用户通过客户端/浏览器访问网盘系统,并基于 http协议采用请求-响应模式完成与服务端交互和数据传输。
2.文件上传模型
文件上传模型为网盘系统提供了完善的文件传输功能,支持不同类型、不 同大小的文件批量上传功能,满足用户在不同场景下的文件上传需求。
传统的文件上传方式是通过一个http请求,将文件数据流读入浏览器内存, 并通过网络发送给服务器端。这种方式存在一些不足之处,尤其在大文件传输 上更容易暴露一些缺陷和问题。第一,文件传输耗时长;第二,在长时间传输 过程中,由于网络不稳定等因素,容易传输出错或失败;第三,传输出错或失 败后,整个文件需重新传输,出错成本高;第四,大文件传输对服务器内存资 源消耗大,容易造成服务器内存资源耗尽而无法正常对外服务。为克服传统上 传方式的诸多缺点,网盘系统文件上传模型采用分块上传、并行机制、断点续 传、闪传技术,以减少文件上传时间,降低出错重试成本,提高上传效率和成 功率。
分块上传:就是将一个大文件,按照固定大小,切分为多个小分块文件, 并为每一个分块文件编号,表示该分块文件先后顺序,再将每一个分块作为独 立文件通过http请求传输到服务器端。后端服务器收到分块文件后,将每一个 分块文件按确定的分块顺序缓存在一个临时目录,等待所有分块上传完成后, 通过一个合并请求将所有分块合并为一个完整的大文件,并保存到分布式文件 存储服务器上。具体过程如图2所示。
并行机制:是一种采用多线程技术实现的高效执行机制。针对大文件上传, 客户端和服务器端可同时采用多线程并行工作方式进行分块上传,相比较传统 上传方式中单线程串行执行,并行方式能大大缩短文件上传时间,提高上传效 率,比如,同时使用三个线程并发执行文件分块上传,上传时间大约会缩短为 单线程串行执行耗时的三分之一,传输效率提升大约3倍。
断点续传:是为解决传统上传方式中文件出错失败后,需全部重新上传的 问题。具体流程如图3所示,因采用分块上传,文件在上传出错失败后,实质 上只是当前分块文件上传失败,之前已上传成功的分块都已存在服务器缓存目 录中,故可以直接从出错分块开始继续上传,不需要整个文件重新上传,这样 可以大大减少出错后重新上传的时间成本,提高上传效率和成功率。
闪传:是在几乎无时间成本情况下,瞬间完成文件传输的一种技术。闪传 技术只能在特定场景下使用,即当用户所上传文件在服务器已存时,闪传技术 可大大节省文件传输时间,提高上传效率,减少不必要的性能浪费。流程如图4 所示,具体实现采用了文件探测技术,即在文件上传前,发送一个http请求用 于探测当前需要上传的文件在服务器端是否已经存在,若已经存在则直接返回 上传成功,并添加数据记录,若不存在,则进行文件上传。
3.消息通信机制
消息通信机制为网盘系统提供了基础的内部消息服务,支持采用同步或异 步方式完成各服务组件间的消息传输和业务调用。具体结构如图5所示,核心 业务之间采用FeignClient同步调用方式进行通信,互相协作,业务之间形成 强耦合。被调用方需按约定定义好相关服务接口和参数,并以sdk方式打包发 布给服务调用方。调用方在加载sdk开发包后,调用相关接口方法将消息传递 给被调用方,并等待被调用方业务处理和响应。
非核心业务采用消息队列实现异步调用、分散处理,减少服务器资源压力。 同时,业务服务与消息队列之间采用主题/订阅模式实现消息的传输和接收。消 息提供方,一般为核心业务服务,产生消息并将消息发送到指定主题队列,然 后继续处理后续业务,实现非核心业务从核心业务流程中剥离,提高了核心业 务处理速度。消息接收方,一般为非核心业务服务,订阅相应主题,从主题队 列中接收提供方发送的消息,然后进行相关计算处理,且不影响核心业务流程, 实现了业务间解耦和资源优化利用。
4.文件管理模型
文件管理模型为网盘系统建立了核心的目录、文件逻辑映射结构,提供了 灵活清晰的树状分层管理结构,支持新建、删除、复制、移动等近本地化操作, 支持用户存储容量的灵活配置。
为实现与本地文件系统相近的管理和操作,文件管理模型需对文件服务器 上存储的文件建立相应的逻辑模型和对应机制,以保证向外提供服务的同时, 对用户隐藏底层具体处理和映射细节。网盘系统文件管理模型采用实体文件记 录和逻辑盘相结合的方式,具体结构如图6所示。实体文件记录,与实体文件 对应,对每一个上传的实体文件记录其名称、大小、类型、存储路径等信息, 并持久化到实体文件表。在实体文件表中,一个实体文件记录通过记录中的存 储路径,就可以定位到文件存储服务器上唯一一个文件实体。实体文件记录是 文件管理模型对文件存储服务器上所有文件建立的一个映射,其目的是实现对底层文件统一管理,并为上层逻辑盘提供支撑。
逻辑盘,在实体文件记录基础上,以用户为管理对象,对每个用户私有文 件和文件夹进行管理,提供灵活清晰的树状分层管理结构,支持用户存储容量 的灵活配置。逻辑盘以逻辑记录作为最小操作实体,分为文件和文件夹两种类 型的记录。逻辑文件记录,是存储在逻辑文件记录表中的一条逻辑记录,唯一 对应一条实体文件记录。从逻辑文件记录到实体文件记录,再通过存储路径到 文件存储服务器上的实体文件,文件管理模型实现了逻辑文件到实体文件映射 层级结构。通过这种映射结构,文件管理模型达到了隐藏底层文件管理细节的 目的。用户在对文件进行移动、删除、复制等操作时,实质是在操作逻辑盘中的逻辑记录,其对底层的具体实现细节、实体文件记录、文件存储服务器无感 知。
逻辑文件夹记录,是逻辑盘中树状分层结构实现的关键。作为纯粹的逻辑 结构,它仅是逻辑记录表中一条数据,并不与任何实体对应。通过父子关联的 方式,逻辑文件夹实现了上下层级结构,以“/”作为唯一的顶级文件夹,其他 文件夹以子节点或孙子节点的方式直接或间接与其关联,且一个父节点可以有 多个子节点,而一个子节点仅有一个父节点。此外,在逻辑文件夹形成的树状 分层结构中,所有逻辑文件必须唯一关联一个逻辑文件夹,以实现文件分类和 层级化管理。
逻辑盘的容量管理,是以数据记录的方式实现,并不反映真实磁盘存储空 间,支持灵活的配置和扩容。以用户为管理对象,系统存储容量是一个逻辑容 量,对真实磁盘存储空间无严格要求,减少了前期存储资源的投入和浪费。
5.文件共享模型
文件共享模型为网盘系统提供了文件共享能力,满足人、部门、单位三种 不同范围选择的要求,加快了信息在不同人员、不同部门、不同单位之间传递 速度,提高了文件复用率。
如图7所示,文件共享模型采用在逻辑盘上增加逻辑共享层的方式,实现 文件在不同用户、不同部门、不同单位间共享的功能。逻辑共享层以逻辑盘中 的文件为基础关联用户、部门或单位记录,形成新的一条逻辑共享记录,并持 久化到共享记录表,实现了从共享记录到逻辑文件记录、实体文件记录、文件 存储服务器的全链路映射结构,达到了一文多用的目的。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变 形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种基于分布式文件存储的网盘系统架构,其特征在于,该架构包括如下4层:基础环境、存储和消息、网盘系统和客户端/浏览器;
基础环境:采用通用的硬件服务器、操作系统、编译环境和开发环境,为上层存储、缓存、消息、应用提供运行支撑;
存储和消息:采用分布式文件存储技术为海量文件的落地存储和冗余备份提供支持;采用关系数据库技术支持应用数据持久化,并使用旁路缓存技术提供数据缓存功能;采用消息队列实现服务间通信,以订阅发布的模式,实现消息在服务间异步传输,解耦不同服务间的业务功能调用,有效提高核心业务功能处理速度,非核心业务在空闲时再进行处理;
网盘系统:是架构中核心业务实现层,按照业务功能,采用微服务架构将网盘系统划分不同的服务模块,各服务模块独立部署运行,采用RESTFUL风格接口,通过网关对外提供统一的文件上传、存储、管理、搜索、共享、回收、预览功能,实现目录和文件的树状分层结构;核心业务功能采用Feign Client同步调用方式进行通信,同步执行,共同协作,非核心业务采用消息队列实现异步调用、分散处理;
客户端/浏览器:业务系统用户通过客户端/浏览器访问网盘系统,并基于http协议采用请求-响应模式完成与服务端交互和数据传输。
2.如权利要求1所述的基于分布式文件存储的网盘系统架构,其特征在于,网盘系统的文件上传包括分块上传,具体地,将一个大文件,按照固定大小,切分为多个小分块文件,并为每一个分块文件编号,表示该分块文件先后顺序,再将每一个分块作为独立文件通过http请求传输到服务器端;服务器端收到分块文件后,将每一个分块文件按确定的分块顺序缓存在一个临时目录,等待所有分块上传完成后,通过一个合并请求将所有分块合并为一个完整的大文件,并保存到分布式文件存储服务器上。
3.如权利要求1所述的基于分布式文件存储的网盘系统架构,其特征在于,网盘系统的文件上传包括并行机制,具体地,针对大文件上传,客户端和服务器端可同时采用多线程并行工作方式进行分块上传。
4.如权利要求1所述的基于分布式文件存储的网盘系统架构,其特征在于,网盘系统的文件上传包括断点续传,具体地,文件在上传出错失败后,直接从出错分块开始继续上传,不需要整个文件重新上传。
5.如权利要求1所述的基于分布式文件存储的网盘系统架构,其特征在于,网盘系统的文件上传包括闪传,具体地,采用文件探测技术,即在文件上传前,发送一个http请求用于探测当前需要上传的文件在服务器端是否已经存在,若已经存在则直接返回上传成功,并添加数据记录,若不存在,则进行文件上传。
6.如权利要求1-5任一项所述的基于分布式文件存储的网盘系统架构,其特征在于,核心业务之间采用Feign Client同步调用方式进行通信,互相协作,业务之间形成强耦合;被调用方需按约定定义好相关服务接口和参数,并以sdk方式打包发布给服务调用方,调用方在加载sdk开发包后,调用相关接口方法将消息传递给被调用方,并等待被调用方业务处理和响应。
7.如权利要求1-5任一项所述的基于分布式文件存储的网盘系统架构,其特征在于,非核心业务采用消息队列实现异步调用、分散处理,业务服务与消息队列之间采用主题/订阅模式实现消息的传输和接收;消息提供方产生消息并将消息发送到指定主题队列,然后继续处理后续业务;消息接收方,订阅相应主题,从主题队列中接收提供方发送的消息,然后进行相关计算处理。
8.如权利要求1-5任一项所述的基于分布式文件存储的网盘系统架构,其特征在于,网盘系统的文件管理采用文件管理模型,文件管理模型为网盘系统建立了核心的目录、文件逻辑映射结构,提供树状分层管理结构,支持近本地化操作,支持用户存储容量的灵活配置。
9.如权利要求8所述的基于分布式文件存储的网盘系统架构,其特征在于,网盘系统的文件管理模型采用实体文件记录和逻辑盘相结合的方式;实体文件记录,与实体文件对应,对每一个上传的实体文件记录其名称、大小、类型、存储路径信息,并持久化到实体文件表;在实体文件表中,一个实体文件记录通过记录中的存储路径,能定位到文件存储服务器上唯一一个文件实体;实体文件记录是文件管理模型对文件存储服务器上所有文件建立的一个映射;
逻辑盘,在实体文件记录基础上,以用户为管理对象,对每个用户私有文件和文件夹进行管理,提供灵活清晰的树状分层管理结构,支持用户存储容量的灵活配置;逻辑盘以逻辑记录作为最小操作实体,分为文件和文件夹两种类型的记录;逻辑文件记录,是存储在逻辑文件记录表中的一条逻辑记录,唯一对应一条实体文件记录;从逻辑文件记录到实体文件记录,再通过存储路径到文件存储服务器上的实体文件,文件管理模型实现逻辑文件到实体文件映射层级结构;用户在对文件进行移动、删除、复制操作时,实质是在操作逻辑盘中的逻辑记录,其对底层的具体实现细节、实体文件记录、文件存储服务器无感知;
逻辑文件夹记录,是逻辑盘中树状分层结构实现的关键;作为纯粹的逻辑结构,它仅是逻辑记录表中一条数据,并不与任何实体对应;通过父子关联的方式,逻辑文件夹实现了上下层级结构,以“/”作为唯一的顶级文件夹,其他文件夹以子节点或孙子节点的方式直接或间接与其关联,且一个父节点可以有多个子节点,而一个子节点仅有一个父节点;此外,在逻辑文件夹形成的树状分层结构中,所有逻辑文件必须唯一关联一个逻辑文件夹,以实现文件分类和层级化管理;
逻辑盘的容量管理,是以数据记录的方式实现,并不反映真实磁盘存储空间,支持灵活的配置和扩容;以用户为管理对象,系统存储容量是一个逻辑容量,对真实磁盘存储空间无严格要求。
10.如权利要求9所述的基于分布式文件存储的网盘系统架构,其特征在于,网盘系统的文件共享采用文件共享模型,文件共享模型采用在逻辑盘上增加逻辑共享层的方式,实现文件在不同用户、不同部门、不同单位间共享的功能。逻辑共享层以逻辑盘中的文件为基础关联用户、部门或单位记录,形成新的一条逻辑共享记录,并持久化到共享记录表,实现了从共享记录到逻辑文件记录、实体文件记录、文件存储服务器的全链路映射结构,达到了一文多用的目的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111350519.9A CN114253929B (zh) | 2021-11-15 | 2021-11-15 | 一种基于分布式文件存储的网盘系统架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111350519.9A CN114253929B (zh) | 2021-11-15 | 2021-11-15 | 一种基于分布式文件存储的网盘系统架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114253929A true CN114253929A (zh) | 2022-03-29 |
CN114253929B CN114253929B (zh) | 2024-04-05 |
Family
ID=80792551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111350519.9A Active CN114253929B (zh) | 2021-11-15 | 2021-11-15 | 一种基于分布式文件存储的网盘系统架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253929B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037741A (zh) * | 2022-08-11 | 2022-09-09 | 中国长江三峡集团有限公司 | 一种文件传输方法及装置 |
CN115657966A (zh) * | 2022-11-18 | 2023-01-31 | 上海雷昶科技有限公司 | 一种关联块存储的应用系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060167887A1 (en) * | 2004-12-28 | 2006-07-27 | Galin Galchev | System and method for implementing multiple application server clusters using a common binary directory structure |
KR20130034366A (ko) * | 2011-09-28 | 2013-04-05 | 권주현 | 네트워크의 파일 분산 처리 시스템 |
CN103442057A (zh) * | 2013-08-27 | 2013-12-11 | 玉林师范学院 | 一种基于用户协作云的云存储系统 |
CN106559392A (zh) * | 2015-09-28 | 2017-04-05 | 北京神州泰岳软件股份有限公司 | 一种文件共享方法、装置和系统 |
CN111259006A (zh) * | 2019-11-19 | 2020-06-09 | 中国科学院计算机网络信息中心 | 一种通用的分布式异构数据一体化物理汇聚、组织、发布与服务方法及系统 |
-
2021
- 2021-11-15 CN CN202111350519.9A patent/CN114253929B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060167887A1 (en) * | 2004-12-28 | 2006-07-27 | Galin Galchev | System and method for implementing multiple application server clusters using a common binary directory structure |
KR20130034366A (ko) * | 2011-09-28 | 2013-04-05 | 권주현 | 네트워크의 파일 분산 처리 시스템 |
CN103442057A (zh) * | 2013-08-27 | 2013-12-11 | 玉林师范学院 | 一种基于用户协作云的云存储系统 |
CN106559392A (zh) * | 2015-09-28 | 2017-04-05 | 北京神州泰岳软件股份有限公司 | 一种文件共享方法、装置和系统 |
CN111259006A (zh) * | 2019-11-19 | 2020-06-09 | 中国科学院计算机网络信息中心 | 一种通用的分布式异构数据一体化物理汇聚、组织、发布与服务方法及系统 |
Non-Patent Citations (1)
Title |
---|
梁宇锋;莫路锋;王圣辉;丁向鹏;: "高校网盘系统的设计和实现", 现代电子技术, no. 20, 15 October 2020 (2020-10-15) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037741A (zh) * | 2022-08-11 | 2022-09-09 | 中国长江三峡集团有限公司 | 一种文件传输方法及装置 |
CN115037741B (zh) * | 2022-08-11 | 2022-11-15 | 中国长江三峡集团有限公司 | 一种文件传输方法及装置 |
CN115657966A (zh) * | 2022-11-18 | 2023-01-31 | 上海雷昶科技有限公司 | 一种关联块存储的应用系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114253929B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180011874A1 (en) | Peer-to-peer redundant file server system and methods | |
JP6404907B2 (ja) | 効率的な読み取り用レプリカ | |
JP6346937B2 (ja) | データベースエンジンを備えたデータベースシステム及び別個の分散型ストレージサービス | |
US7653668B1 (en) | Fault tolerant multi-stage data replication with relaxed coherency guarantees | |
US20040267836A1 (en) | Replication of snapshot using a file system copy differential | |
CN111124301A (zh) | 一种对象存储设备的数据一致性存储方法及系统 | |
CN101706781B (zh) | 一种数据库缓存集中管理方法和系统 | |
US20050015663A1 (en) | Data recovery with internet protocol replication with or without full resync | |
CN112236753A (zh) | 使用基于索引节点编号的依赖图更快地重放元数据和数据操作 | |
CN114253929B (zh) | 一种基于分布式文件存储的网盘系统架构 | |
JP2011516994A (ja) | 冗長データ記憶システムへの指示に従ってのデータ配置 | |
US7818390B2 (en) | Method for transferring data between terminal apparatuses in a transparent computation system | |
CN113010496A (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
CN115878384A (zh) | 一种基于备份容灾系统的分布式集群及构建方法 | |
CN100486345C (zh) | 基于pc服务器的业务系统 | |
WO2015127647A1 (zh) | 一种基于Ceph的分布式机制的存储虚拟化管理器及系统 | |
CN113076298B (zh) | 分布式小文件存储系统 | |
CN116896556A (zh) | 一种基于分布式文件存储的文件共享系统设计方法 | |
CN116361225B (zh) | 一种实现点对点跨区域nas的系统 | |
WO2024208119A1 (zh) | 一种数据访问方法及相关装置 | |
CN116737810B (zh) | 一种用于分布式时序数据库的共识服务接口 | |
KR100536878B1 (ko) | 복제 기법를 이용한 이동통신망의 홈 위치 레지스터 메인메모리 데이터베이스의 실시간 백업 방법 | |
CN116303251A (zh) | 一种文件智能归档系统及方法 | |
CN117834606A (zh) | 一种基于cdn系统的边缘分布式kv系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |