一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种文档存储集群化的方法、装置、设备和介质与流程

2022-03-16 03:07:47 来源:中国专利 TAG:
1.本发明涉及计算机
技术领域
:,特别涉及一种文档存储集群化的方法、装置、设备和介质。
背景技术
::2.通常情况下,文档是直接存储在服务器本地存储上,且单点保存,只有一个文件备份(即文件本身),这样,若是服务器宕机或者存储器损坏,则不可避免地导致文件丢失,这样会造成不可挽回的后果。3.在此基础上,通常会发展成利用一个热备服务器,来实时同步主服务器上的文件数据,如采用rsync来实现文件比对和同步,一旦主服务器不可用或者存储损坏,备份服务器可以接替主服务器提供文件数据服务。然而目前现有技术采用主备实时同步的方案,实际上并不是真正的同步,数据依然有很大的风险丢失,数据同步存在一定的间隔性,且主备方式增加了数据维护成本的增加。技术实现要素:4.本发明要解决的技术问题,在于提供一种文档存储集群化的方法、装置、设备和介质,采用数据块形式完全分布式存储在hadoop服务器集群的至少两台机器上,每个数据块可以具有至少两份,无需进行数据同步,由软件实现数据的分布式存储。5.第一方面,本发明提供了一种文档存储集群化的方法,包括:6.文件存储过程:通过nginx服务器接收用户上传的文件,并根据负载均衡原则转发给后端的文档系统服务器集群中的任意一文档系统服务器;所述文档系统服务器将文件统一保存到hadoop服务器集群中,所述文件是以数据块的形式分布存储在hadoop服务器集群各个hadoop服务器上,并通过namenode组件记录数据块的个数、各个数据块的顺序和存储地址,其中,每个数据块同时在至少两个hadoop服务器进行备份;7.文件下载过程:通过所述nginx服务器展示文件列表,接收用户的文件下载请求,并根据负载均衡原则转发给所述文档系统服务器集群中的任意一文档系统服务器;由所述文档系统服务器请求hadoop服务器集群获取该文件,根据namenode组件记录的各个数据块的存储地址从各个hadoop服务器中通过流的方式获得该文件对应的所有数据块,并根据数据块的个数和各个数据块的顺序重新合成文件,并将文件通过所述nginx服务器返回给用户。。8.第二方面,本发明提供了一种文档存储集群化的装置,包括:9.nginx服务模块,用于通过nginx服务器接收用户上传的文件,以及用于通过所述nginx服务器展示文件列表,接收用户的文件下载请求,并根据负载均衡原则转发给后端的文档系统服务器集群中的任意一文档系统服务器;10.文档服务模块,在上传文件时用于所述文档系统服务器将文件是以数据块的形式分布存储在hadoop服务器集群的各个hadoop服务器上,并通过namenode组件记录数据块的个数、各个数据块的顺序和存储地址,其中,每个数据块同时在至少两个hadoop服务器进行备份;以及在文件下载时用于所述文档系统服务器请求hadoop服务器集群获取文件,根据namenode组件记录的各个数据块的存储地址从各个hadoop服务器中通过流的方式获得该文件对应的所有数据块,并根据数据块的个数和各个数据块的顺序重新合成文件,并将文件通过所述nginx服务器返回给用户。11.第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。12.第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。13.本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:文件是以数据块的形式采用分布式存储在hadoop服务器集群的各个hadoop服务器上,使文档服务器集群化,能够提升本系统的用户并发数和吞吐量,大大提高了性能;且文件的分布式存储还保证了数据的高可用性和完整性;数据块的分布式存储导致在hadoop服务器集群上无法直接读取文件,只能通过文档系统服务器根据存储地址进行读取,大大提高了数据的安全性;且每个数据块还在多个hadoop服务器上进行备份,同样提高了数据的安全性和高可用性。14.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明15.下面参照附图结合实施例对本发明作进一步的说明。16.图1为本发明系统的框架示意图;17.图2为本发明实施例一中方法中的流程图;18.图3为本发明实施例二中装置的结构示意图;19.图4为本发明实施例三中电子设备的结构示意图;20.图5为本发明实施例四中介质的结构示意图。具体实施方式21.本技术实施例通过提供一种文档存储集群化的方法、装置、设备和介质,采用数据块形式完全分布式存储在hadoop服务器集群的至少两台机器上,每个数据块可以具有至少两份,无需进行数据同步,且在hadoop服务器集群上是无法直接读取文件,极大地保障了数据的安全性。22.本技术实施例中的技术方案,总体思路如下:文件是以数据块的形式采用分布式存储在hadoop服务器集群的各个hadoop服务器上,使文档服务器集群化,能够提升本系统的用户并发数和吞吐量,大大提高了性能;且文件的分布式存储还保证了数据的高可用性和完整性;数据块的分布式存储导致在hadoop服务器集群上无法直接读取文件,只能通过文档系统服务器进行读取,大大提高了数据的安全性;且每个数据块还在多个hadoop服务器上进行备份,同样提高了数据的安全性和高可用性。23.在介绍具体实施例之前,先介绍本技术实施例方法所对应的系统框架,如图1所示,系统分为如下几个部分:24.nginx服务器,统一接收用户请求,并转发到后端文档服务器上。25.文档系统服务器集群,包括至少两台文档服务器,用于统一处理用户的日常请求,以及承担文件操作业务,根据业务性质对接各个数据服务器,如hadoop服务器集群、数据库服务器、文档转换服务器集群、redis缓存服务器集群等。26.hadoop服务器集群,包括至少两台hadoop服务器,用于文件数据块的存储,保证文件分布式存储和hadoop集群高可用。hadoop是一个由apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。hadoop实现了一个分布式文件系统(distributedfilesystem),其中一个组件是hdfs(hadoopdistributedfilesystem)。hdfs具有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它可以提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序。hdfs放宽了(relax)posix(portableoperatingsysteminterfaceofunix,可移植操作系统接口)的要求,可以以流的形式访问(streamingaccess)文件系统中的数据。27.数据库主备系统,用于保存用户的业务数据,部署两台服务器,分别为主数据库服务器和备数据库服务器,避免了单点故障,保证了高可用性。28.文档转换服务器集群,可以是一台或多台文档转换服务器,用于部署文档转换服务,作为用户预览文件所需服务;29.redis缓存服务器集群,作为用户session会话的集群共享,包括至少两台redis缓存服务器,保存用户会话信息,无论用户的请求被文档系统服务器集群转发到哪一台redis缓存服务器上,都可以从统一的redis缓存服务器集群上读取到用户的会话信息,保证用户请求能够发送到redis缓存服务器集群中的任意一台机器上,而不会被强制重新登录。因为本发明系统是集群分布式架构,所以用户每次请求都会通过nginx服务器转发到不同的文档服务器,如果用户登录验证在文档服务器a上,并直接将会话信息保存在文档服务器a上,那么下次请求发到文档服务器b上,而文档服务器b上是没有用户保存的会话信息,所以会导致用户验不通过,从而返回重新登录的信息,所以将用户登录的会话信息保存在一个共享的redis服务器集群中,那么每台文档服务器都从redis服务器集群上获取用户的会话信息,可以做到会话集群共享,不会被强制重新登录。30.实施例一31.如图2所示,本实施例提供一种文档存储集群化的方法,包括:32.文件存储过程:通过nginx服务器接收用户上传的文件,并根据负载均衡原则转发给后端的文档系统服务器集群中的任意一文档系统服务器;所述文档系统服务器将文件统一保存到hadoop服务器集群中,所述文件是以数据块的形式分布存储在hadoop服务器集群各个hadoop服务器上,并通过namenode组件记录数据块的个数、各个数据块的顺序和存储地址,其中,每个数据块同时在多个hadoop服务器具有备份;这样当某台存储服务器挂掉的时候,数据块可以从其他服务器读取,确保某台服务器的数据损坏,在其他服务器能找到备份进行恢复。33.文件下载过程:通过所述nginx服务器展示文件列表,接收用户的文件下载请求,并根据负载均衡原则转发给所述文档系统服务器集群中的任意一文档系统服务器;由所述文档系统服务器请求hadoop服务器集群获取该文件,根据namenode组件记录的各个数据块的存储地址从各个hadoop服务器中通过流的方式获得该文件对应的所有数据块,并根据数据块的个数和各个数据块的顺序重新合成文件,并将文件通过所述nginx服务器返回给用户。其中,所述负载均衡原则即nginx负载均衡原则,具有四种配置,包括iphash、轮询、权重、最少连接,且配置支持手动配置修改,在一具体实施例中可采用轮询方式进行负载均衡转发,轮询方式也是nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务down掉,可以自动剔除。34.其中,作为本实施例的一种更优或更为具体的实现方式,所述方法还包括数据块定义过程、用户会话管理过程、文件预览服务过程以及数据恢复过程。35.数据块定义过程进一步包括:36.(1)手动配置过程,即通过所述nginx服务器提供手动配置界面供用户对一个文件的数据块个数进行手动配置,则数据块的大小为文件数据大小与数据块个数的商;例如:一个30mb的文件,若手动配置数据块个数为6个,那么数据块的大小为5mb,则文件会被拆分成6个相同大小的数据块保存。37.(2)自动配置过程,所述数据块的大小是根据磁盘的数据传输时间和寻址时间的平衡原则来自动设置的,所述平衡原则是寻址时间为数据传输时间的1%,即最佳数据传输时间tc是平均寻址时间tx的100倍,则所述数据块block的大小的计算方式为:[0038][0039]式中,vc为普遍数据传输速度。[0040]一般来说,文件数据块的个数可以手动配置,由于关于数据块的大小会影响寻址速度和传输速度,如果设置过大,从磁盘传输数据的时间会明显大于寻址时间,导致程序在处理这块数据时变得非常慢;如果设置过小,一方面,一个文件会被分割为大量的小文件,存放大量小文件会占用hadoop的namenode组件中大量内存来存储元数据,而namenode的内存是有限的,因此不可取;另一方面,由于数据块过小,寻址时间增长,导致程序一直在找block的开始位置。因此,块适当设置大一些,减少寻址时间,那么传输一个有多个块组成的文件的时间主要取决于磁盘的传输速度。因此自动配置过程要根据磁盘的数据传输时间和寻址时间的平衡原则来自动设置的。[0041]例如:hadoop的hdfs中平均寻址时间tx大概为10ms;经过大量测试发现,寻址时间为传输时间的1%时,为最佳状态,所以最佳传输时间tc为:10ms/0.01=1000s=1s,目前磁盘普遍的传输速度vc为100mb/s,则最佳block大小计算:100mb/s*1s=100mb;所以可以设置block大小为128mb。[0042]用户会话管理过程:在用户上传文件或下载文件之前,通过nginx服务器接收用户的登录请求,并根据负载均衡原则将登录请求转发给后端的文档系统服务器集群中的任意之一文档系统服务器;由所述文档系统服务器从数据库主备系统中获取该用户信息进行校验;若校验成功,则将用户的登录信息保存在redis服务器集群中作为用户的会话信息凭证,最后返回登录成功信息;登录成功后,通常会通过jackrabbit组件获取用户文件列表,展示用户文件列表,从而供用户选择文件进行下载。[0043]其中,所述redis服务器集群为用户session会话的集群共享,无论用户的登录请求被nginx服务器转发到哪一台文档系统服务器上,该文档系统服务器都能从统一的redis缓存服务器集群中上读取到用户的会话信息。[0044]文件预览服务过程:在所述文件存储过程或所述文件下载过程中,通过nginx服务器接收用户的文件预览请求,并根据负载均衡原则转发给后端的文档系统服务器集群中的任意之一文档系统服务器;由所述文档系统服务器根据负载均衡原则,将该文件对应的所有数据块转发给文档转换服务器集群,由所述文档转换服务器集群对数据块进行格式转换成可预览的格式后进行预览展示;[0045]数据恢复过程:如前所述,由于每个数据块同时在多个hadoop服务器具有备份,因此当hadoop服务器集群中某台hadoop服务器的数据损坏时,所述文档系统服务器根据namenode组件记录的该数据块的存储地址从其他hadoop服务器读取对损坏的数据块进行恢复。[0046]基于同一发明构思,本技术还提供了与实施例一中的方法对应的装置,详见实施例二。[0047]实施例二[0048]如图3所示,在本实施例中提供了一种文档存储集群化的装置,包括:[0049]nginx服务模块,用于通过nginx服务器接收用户上传的文件,以及用于通过所述nginx服务器展示文件列表,接收用户的文件下载请求,并根据负载均衡原则转发给所述文档系统服务器集群中的任意一文档系统服务器;[0050]文档服务模块,在上传文件时用于所述文档系统服务器将文件是以数据块的形式分布存储在hadoop服务器集群的各个hadoop服务器上,并通过namenode组件记录数据块的个数、各个数据块的顺序和存储地址,其中,每个数据块同时在多个hadoop服务器具有备份;以及在文件下载时用于所述文档系统服务器请求hadoop服务器集群获取文件,根据namenode组件记录的各个数据块的存储地址从各个hadoop服务器中通过流的方式获得该文件对应的所有数据块,并根据数据块的个数和各个数据块的顺序重新合成文件,并将文件通过所述nginx服务器返回给用户。[0051]其中,作为本实施例的一种更优或更为具体的实现方式,所述装置还包括:数据块定义模块、用户会话管理模块、文件预览服务模块以及数据恢复模块,[0052]数据块定义模块用于提供下述过程:[0053](1)手动配置过程,即通过所述nginx服务器提供手动配置界面供用户对一个文件的数据块个数进行手动配置,则数据块的大小为文件数据大小与数据块个数的商;[0054](2)自动配置过程,所述数据块的大小是根据磁盘的数据传输时间和寻址时间的平衡原则来自动设置的,所述平衡原则是寻址时间为数据传输时间的1%,即最佳数据传输时间tc是平均寻址时间tx的100倍,则所述数据块block的大小的计算方式为:[0055][0056]式中,vc为普遍数据传输速度。[0057]用户会话管理模块,用于在用户上传文件或下载文件之前,通过nginx服务器接收用户的登录请求,并根据负载均衡原则将登录请求转发给后端的文档系统服务器集群中的任意之一文档系统服务器;由所述文档系统服务器从数据库主备系统中获取该用户信息进行校验;若校验成功,则将用户的登录信息保存在redis服务器集群中作为用户的会话信息凭证,最后返回登录成功信息;[0058]其中,所述redis服务器集群为用户session会话的集群共享,无论用户的登录请求被nginx服务器转发到哪一台文档系统服务器上,该文档系统服务器都能从统一的redis缓存服务器集群中上读取到用户的会话信息。[0059]文件预览服务模块,用于在所述文件存储过程或所述文件下载过程中,通过nginx服务器接收用户的文件预览请求,并根据负载均衡原则转发给后端的文档系统服务器集群中的任意之一文档系统服务器;由所述文档系统服务器根据负载均衡原则,将该文件对应的所有数据块转发给文档转换服务器集群,由所述文档转换服务器集群对数据块进行格式转换成可预览的格式后进行预览展示;[0060]数据恢复模块,当hadoop服务器集群中某台hadoop服务器的数据损坏时,所述文档系统服务器根据namenode组件记录的该数据块的存储地址从其他hadoop服务器读取对损坏的数据块进行恢复。[0061]由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。[0062]基于同一发明构思,本技术提供了实施例一对应的电子设备实施例,详见实施例三。[0063]实施例三[0064]本实施例提供了一种电子设备,如图4所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。[0065]由于本实施例所介绍的电子设备为实施本技术实施例一中方法所采用的设备,故而基于本技术实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本技术实施例中的方法不再详细介绍。只要本领域所属技术人员实施本技术实施例中的方法所采用的设备,都属于本技术所欲保护的范围。[0066]基于同一发明构思,本技术提供了实施例一对应的存储介质,详见实施例四。[0067]实施例四[0068]本实施例提供一种计算机可读存储介质,如图5所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。[0069]本技术实施例中提供的技术方案,至少具有如下技术效果或优点:文件是以数据块的形式采用分布式存储在hadoop服务器集群的各个hadoop服务器上,使文档服务器集群化,能够提升本系统的用户并发数和吞吐量,大大提高了性能;且文件的分布式存储还保证了数据的高可用性和完整性;数据块的分布式存储导致在hadoop服务器集群上无法直接读取文件,只能通过文档系统服务器根据存储地址进行读取,大大提高了数据的安全性;且每个数据块还在多个hadoop服务器上进行备份,同样提高了数据的安全性和高可用性。[0070]本领域内的技术人员应明白,本发明的实施例可提供为方法、装置或系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0071]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0072]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0073]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0074]虽然以上描述了本发明的具体实施方式,但是熟悉本
技术领域
:的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献