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

分布式文件系统和文件缓存方法与流程

2022-02-21 06:37:35 来源:中国专利 TAG:


1.本技术分布式文件系统技术领域,具体涉及一种分布式文件系统和文件缓存方法。


背景技术:

2.fastdfs是一个开源的轻量级分布式文件系统,可以对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等。其充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用fastdfs很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
3.文件服务器集群可以包括很多个fastdfs,每一个fastdfs可以处于不同的机房中(机房物理位置无要求)。一个fastdfs表示一个节点,文件服务器集群中的所有节点均为对等节点,当应用户的文件处理请求(例如上传文件请求)到文件服务集群时,文件会以随机或轮询方式在整个集群选择一个节点进行文件上传,若选择节点与当前应用节点不存在于同一机房时,会出现跨机房文件处理的问题,从而出现文件处理的高延时、低性能的缺点。
4.申请内容
5.有鉴于此,本技术实施例中提供了一种分布式文件系统和文件缓存方法。
6.第一方面,本技术实施例提供了一种分布式文件系统,该系统包括:至少两个机房,其中所述机房中设置有nginx服务器、应用程序服务器和fastdfs服务器;所述fastdfs服务器包括至少一个跟踪服务器和存储服务器;任意一个所述机房为主机房,其余所述机房为从机房;所述主机房中的所述nginx服务器、所述应用程序服务器、所述跟踪服务器和所述存储服务器依次分别记为主nginx服务器、主应用程序服务器、主跟踪服务器和主存储服务器;
7.当任一用户发送文件处理请求时,所述主nginx服务器接收所述文件处理请求,并将所述文件处理请求发送至所述主应用程序服务器;
8.所述主应用程序服务器访问所述主跟踪服务器,从所述主跟踪服务器获得能处理所述文件处理请求的所述主存储服务器,将所述文件处理请求发送至所述主存储服务器;
9.所述主存储服务器根据所述文件处理请求完成文件处理。
10.本技术实施例中的分布式文件系统,包括至少两个机房,其中机房中设置有nginx服务器、应用程序服务器和fastdfs服务器;fastdfs服务器包括至少一个跟踪服务器和存储服务器;任意一个机房为主机房,其余机房为从机房;主机房中的nginx服务器、应用程序服务器、跟踪服务器和存储服务器依次分别记为主nginx服务器、主应用程序服务器、主跟踪服务器和主存储服务器;当任一用户发送文件处理请求时,主nginx服务器接收文件处理请求,并将文件处理请求发送至主应用程序服务器;主应用程序服务器访问主跟踪服务器,从主跟踪服务器获得能处理文件处理请求的主存储服务器,将文件处理请求发送至主存储服务器;主存储服务器根据文件处理请求完成文件处理。
11.该分布式文件系统,设置主机房和从机房,并且主机房中的nginx服务器、应用程
序服务器、跟踪服务器和存储服务器依次分别设置为主nginx服务器、主应用程序服务器、主跟踪服务器和主存储服务器;当接收到文件处理请求时,可以通过主nginx服务器、主应用程序服务器、主跟踪服务器和主存储服务器之间的配合即可完成对文件的处理,即完全可以在单机房中完成文件处理,避免了文件的跨机房处理问题,从而能避免了高延时,大大提高文件处理的效率。
12.第二方面,本技术实施例提供了一种利用分布式文件系统的文件缓存方法,该方法包括:
13.所述主nginx服务器接收任一用户发送的图片上传请求,并将所述图片上传请求发送至所述主应用程序服务器;
14.所述主应用程序服务器通过访问所述主跟踪服务器,以获得能处理所述文件处理请求的所述主存储服务器,将所述图片上传请求发送至所述主存储服务器;
15.所述主存储服务器响应所述图片上传请求将图片写入磁盘,并向所述主应用程序服务器返回图片上传结果;
16.所述主应用程序服务器将所述图片上传结果发送至所述主nginx服务器;
17.所述主nginx服务器基于所述图片上传结果向所述主应用程序服务器发送图片下载请求;
18.所述主应用程序服务器通过访问所述主跟踪服务器,以获得存储所述图片下载请求对应的图片的所述主存储服务器,并将所述图片下载请求发送至所述主存储服务器;
19.所述主存储服务器响应所述图片下载请求,将相应的图片通过主应用程序服务器发送至所述主nginx服务器;
20.所述主nginx服务器缓存所述相应的图片。
21.本技术实施例提供的利用分布式文件系统的文件缓存方法,由于采用了上述的分布式文件系统,如此也可以在单机房中完成图片上传,避免了文件的跨机房处理问题,从而能避免了高延时,大大提高图片的效率。另外,主nginx服务器还能缓存图片,当有用户请求下载图片(尤其是即时通信中有多个用户同时请求下载同一个图片)时,就直接可以从主nginx服务器缓存的图片中下载,减少了后续的处理,进而减少了机房中其他服务器的处理压力,也能提高图片下载的速度。
附图说明
22.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
23.图1为本技术实施例提供的分布式文件系统的结构示意图。
24.图2为本技术一个实施例提供的文件处理过程示意图;
25.图3为本技术另一个实施例提供的分布式文件系统的结果示意图;
26.图4为本技术一个实施例提供的文件缓存方法示意图。
具体实施方式
27.下面将对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.为了更详细说明本技术,下面结合附图对本技术提供的一种基于分布式文件系统的文件处理方法、装置、终端设备和计算机存储介质,进行具体地描述。
29.请参考图1,图1示出了本技术实施例提供的分布式文件系统的结构示意图。系统包括至少两个机房(即图1中的机房a和机房b),其中机房中设置有nginx服务器、应用程序服务器和fastdfs服务器;fastdfs服务器包括至少一个跟踪服务器和存储服务器。
30.可选地,在一个机房中,nginx服务器、应用程序服务器和fastdfs服务器的数量可以为一个或多个。其中nginx服务器又称为负载均衡服务器,是一款轻量级的web服务器、反向代理服务器,其内存占用少,启动极快,高并发能力强。应用程序服务器也可称为客户端,可以与fastdfs服务器进行信息交互,从而完成文件处理。
31.fastdfs服务器,主要有两个角色,跟踪服务器(即tracker server)和存储服务器(即storage server),其中跟踪服务器主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。存储服务器,又称存储节点或数据服务器,文件和文件属性都保存到存储服务器上。存储服务器可以直接利用os的文件系统调用管理文件。
32.另外,对于一个fastdfs服务器来说,其跟踪服务器和存储服务器的数量可以是一个或多个。多个存储服务器可以形成一个存储服务器组,一个跟踪服务器可以与一个存储服务器组进行信息交互。
33.在一种优选的实施方式中,一个机房中nginx服务器、应用程序服务器和fastdfs服务器分别为至少为两个。
34.具体地,为了确保负载层高可用、应用层高可用、负载均衡以及fastdfs主服务高可用在每个机房中至少设置两个nginx服务器、应用程序服务器和fastdfs服务器。
35.任意一个机房为主机房,其余机房为从机房。如图1所示,将机房a记为主机房,机房b为从机房。在主机房处于正常状态时,将主机房作为服务的主接口,用于处理各文件处理请求;从机房处于备用状态。当主机房处于异常状态时,任意一个从机房可以切换成主机房。
36.其次,主机房中的nginx服务器、应用程序服务器、跟踪服务器和存储服务器依次分别记为主nginx服务器(即图1中的nginx服务器a1、nginx服务器a2)、主应用程序服务器(即图1中应用程序服务器a1、应用程序服务器a2)、主跟踪服务器(即图1中跟踪服务器a1、跟踪服务器a2)和主存储服务器(即图1中存储服务器a1、存储服务器a2)。当任一用户发送文件处理请求时,主nginx服务器接收文件处理请求,并将文件处理请求发送至主应用程序服务器;主应用程序服务器访问主跟踪服务器,从主跟踪服务器获得能处理文件处理请求的主存储服务器,将文件处理请求发送至主存储服务器;主存储服务器根据文件处理请求完成文件处理。
37.其中,主nginx服务器可以是nginx服务器a1或nginx服务器a2。主应用程序服务器
可以是应用程序服务器a1、应用程序服务器a2。主跟踪服务器可以是跟踪服务器a1或跟踪服务器a2。主存储服务器可以是存储服务器a1或存储服务器a2。
38.文件处理请求是指用户通过终端设备发送的,包括但不限于文件上传、文件下载等。文件包括但不限于文档、图片、视频以及音频等。
39.为了便于理解文件处理过程,给出一个详细的实施例。如图2所示,当用户向分布式文件系统发送文件处理请求时,主机房(即机房a)中的nginx服务器a1接收文件处理请求,并把文件处理请求发送给应用程序服务器a1,应用程序服务器a1通过跟踪服务器a1查询处理该文件处理请求的存储服务器,并接受相应文件处理的存储服务器a1;之后应用程序服务器a1将文件处理请求发送至存储服务器a1,存储服务器a1根据文件处理请求对文件进行处理(例如文件读或写操作),在处理完成后处理结果(即响应文件流)反馈给用户。
40.需要说明的是,为了方便描述整个文件处理过程采用nginx服务器a1、应用程序服务器a1、跟踪服务器a1和存储服务器a1,而在实际的文件处理中,也可以选择与上述服务器处于同一机房,且功能相同的服务器,只要能实现上述功能即可。
41.本技术实施例中的分布式文件系统,包括至少两个机房,其中机房中设置有nginx服务器、应用程序服务器和fastdfs服务器;fastdfs服务器包括至少一个跟踪服务器和存储服务器;任意一个机房为主机房,其余机房为从机房;主机房中的nginx服务器、应用程序服务器、跟踪服务器和存储服务器依次分别记为主nginx服务器、主应用程序服务器、主跟踪服务器和主存储服务器;当任一用户发送文件处理请求时,主nginx服务器接收文件处理请求,并将文件处理请求发送至主应用程序服务器;主应用程序服务器访问主跟踪服务器,从主跟踪服务器获得能处理文件处理请求的主存储服务器,将文件处理请求发送至主存储服务器;主存储服务器根据文件处理请求完成文件处理。
42.该分布式文件系统,设置主机房和从机房,并且主机房中的nginx服务器、应用程序服务器、跟踪服务器和存储服务器依次分别设置为主nginx服务器、主应用程序服务器、主跟踪服务器和主存储服务器;当接收到文件处理请求时,可以通过主nginx服务器、主应用程序服务器、主跟踪服务器和主存储服务器之间的配合即可完成对文件的处理,即完全可以在单机房中完成文件处理,避免了文件的跨机房处理问题,从而能避免了高延时,大大提高文件处理的效率。
43.在一个实施例中,如图1所示,从机房(即图1中的机房b)中nginx服务器、应用程序服务器、跟踪服务器和存储服务器依次分别记为从nginx服务器(即图1中的nginx服务器b1、nginx服务器b2)、从应用程序服务器(即图1中应用程序服务器b1、应用程序服务器b2)、从跟踪服务器(即图1中跟踪服务器b1、跟踪服务器b2)和从存储服务器(即图1中存储服务器b1、存储服务器b2);主nginx服务器分别为主应用程序服务器和从应用程序服务器分配权重值,其中,权重值越大能接收到文件处理请求的优先级越高。
44.具体而言,fastdfs服务器通常会构成一个集群,即主机房(即机房a)和从机房(即机房b)中机房a和机房b的所有fastdfs服务均为同一个集群。那么基于分布式系统的跨机房访问属性,主nginx服务器可以与主应用程序服务器进行信息交互,也可以与从应用服务器进行信息交互,即主nginx服务器可以将文件处理请求发送至主应用程序服务器或从应用程序服务器。为了控制和选择文件处理过程,主nginx服务器可以对主应用程序服务器和从应用程序服务器分配权重值,权重值越大能接收到文件处理请求的优先级越高。
45.在一种可选地实施方式中,主nginx服务器可以为主应用程序服务器分配权重值为99999,为从应用程序服务器分配权重值1。采用上述权重分配方式可以使得绝大部分文件处理请求都转发到主nginx服务器的同机房的(即主机房的)fastdfs服务器处理,极少量请求转发从机房的fastdfs服务器,最大程度地减少了文件跨机房处理的可能,进而避免了高延时,提高了文件处理效率。同时也能保留了文件跨机房处理的特性,在一些特殊情况下(例如主应用程序服务器都处于异常或故障情况下)依然可以采用跨机房处理,从而避免文件无法处理的情况。
46.在一个实施例中,主应用程序服务器的权重值大于从应用程序服务器的权重值;当主应用程序服务器处于正常状态时,主nginx服务器只将文件处理请求发送至主应用程序服务器。
47.具体地,可以设置应用程序服务器的权重值大于从应用程序服务器的权重值。当主应用程序服务器处于正常状态时,主nginx服务器只将文件处理请求发送至主应用程序服务器。采用该方式可以使得绝大部分文件处理请求都转发到主nginx服务器的同机房的(即主机房的)fastdfs服务器处理,能最大程度地减少了文件跨机房处理的可能,进而避免了高延时,提高了文件处理效率。
48.在一个实施例中,当主应用程序服务器处于异常状态时,主nginx服务器将文件处理请求发送至从应用程序服务器;从应用程序服务器访问从跟踪服务器,从从跟踪服务器获得能处理文件处理请求的从存储服务器,并将文件处理请求发送至从存储服务器;从存储服务器根据文件处理请求完成文件处理。
49.具体而言,当主机房的主nginx服务器处于正常状态,而主应用程序服务器处于异常状态,此时主nginx服务器无法通过将主应用服务器程序将文件处理请求发送给主机房的fastdfs服务器。此时,主nginx服务器可以将文件处理请求发生给从机房中的从应用程序服务器,从应用程序服务器访问从跟踪服务器,从从跟踪服务器获得能处理文件处理请求的从存储服务器,并将文件处理请求发送至从存储服务器;从存储服务器根据文件处理请求完成文件处理。
50.为了便于理解,给出一个详细的实施例。如图3所示,若机房a的nginx服务器a1和/或nginx服务器a2处于正常状态,而应用程序服务器a1和应用程序服务器a2都处于不可用的异常状态,那么nginx服务器a1或nginx服务器a2可以将文件处理请求转发到机房b的应用程序服务器b1或应用程序服务器b2中处理,文件处理请求到达应用程序服务器b1或应用程序服务器b2后,应用程序服务器b1或应用程序服务器b2访问跟踪服务器b1或跟踪服务器b2,从而获得能处理该文件处理请求的存储服务器b1或存储服务器b2,最后由存储服务器b1或存储服务器b2完成对文件的处理。即在本实施例中,当文件处理请求达到机房b后,后续所有操作均在机房b中进行单机房内部处理,时延仅体现在nginx服务器a1或nginx服务器a2将文件处理请求发送至应用程序服务器b1或应用程序服务器b2之间的时延,也能在一定程序上提高了文件处理的效率。
51.此外,当应用管理员或工作人员发现应用程序服务器a1和应用程序服务器a2不可用后,可以通过dns将机房b切换主机房,从而恢复完整的单机房处理。
52.在一个实施例中,当主跟踪服务器处于正常状态,且主存储服务器处于异常状态时,主应用程序服务器访问主跟踪服务器,从主跟踪服务器获得能处理文件处理请求的从
存储服务器,并将文件处理请求发送至从存储服务器;从存储服务器根据文件处理请求完成文件处理。
53.具体地,当主机房的主nginx服务器处于正常状态,主应用程序服务器也处于异常状态,而主跟踪服务器处于正常状态,但主存储服务器处于异常状态时,此时主存储服务器无法根据文件处理请求完成文件处理。此时,主跟踪服务器可以跟从存储服务器进行信息交互,并返回能处理文件处理请求的从存储器至主应用程序服务器,主应用程序服务器将文件处理请求发送至从存储服务器;从存储服务器根据文件处理请求完成文件处理。采用该方式在主机房的主存储器存在异常,其他服务器正常时,可以将文件处理请求发送至从存储服务器,以避免文件无法处理。
54.在一个实施例中,文件处理请求包括图片上传请求;主存储服务器根据图片上传请求完成图片上传后,主nginx服务器缓存图片。
55.在一个实施例中,文件处理请求包括图片下载请求;主nginx服务器接收图片下载请求,从缓存的图片中选出相应图片发送至用户。
56.具体地,文件处理请求可以是图片上传请求。此时,主存储服务器需要上传图片,在图片处理完成后,主nginx服务器缓存图片。
57.可选地,主nginx服务器可以采用proxy cache来缓存图片。
58.采用主nginx服务器缓存图片,用户需要下载图片时,直接可以从主nginx服务器缓存的图片中查找,不需要再去主存储服务器中查找,减少了文件查找过程,从而提高图片下载速度。
59.基于上述的分布式文件系统,本发明实施例还提供了一种利用分布式文件系统的文件缓存方法,该方法以图1中机房a中的主nginx服务器(即nginx服务器a1)、主应用程序服务器(即应用程序服务器a1)、主跟踪服务器(即跟踪服务器a1)以及主存储服务器(即主存储服务器a1)为例进行说明,请参照图4,包括以下步骤:
60.步骤s401,主nginx服务器接收任一用户发送的图片上传请求。
61.步骤s402,主nginx服务器将图片上传请求发送至主应用程序服务器。
62.具体地,用户向分布式服务系统发送图片上传请求,当请求到达nginx服务器a1时,nginx服务器a1文件上传请求分发到应用程序服务a1。
63.步骤s403,主应用程序服务器通过访问主跟踪服务器。
64.步骤s404,主应用程序服务器获得能处理文件处理请求的主存储服务器。
65.步骤s405,主应用程序服务器将图片上传请求发送至主存储服务器。
66.具体地,应用程序服务器a1接收到图片上传请求,访问跟踪服务器a1,跟踪服务器a1询问该图片的写入的主存储服务器(即是主存储器a1还是住存储器a2)。应用程序服务器收到可以处理图片写入的主存储服务器(例如是存储服务器a1)后,向存储服务器a1发送图片上传请求。
67.步骤s406,主存储服务器响应图片上传请求将图片写入磁盘。
68.步骤s407,主存储服务器向主应用程序服务器返回图片上传结果。
69.具体而言,存储服务器a1收到图片上传请求,将图片写入磁盘,并响应应用程序服务a1图片写入路径(例如图片地址)返回至应用程序服务器a1。
70.步骤s408,主应用程序服务器将图片上传结果发送至主nginx服务器。
71.具体地,应用程序服务器a1将图片上传结果响应到nginx服务器a1。
72.步骤s409,主nginx服务器基于图片上传结果向主应用程序服务器发送图片下载请求。
73.具体的,nginx服务器a1收到应用程序服务器a1的图片上传结果,判断上传的文件是否为图片。nginx服务器a1确认文件图片时,通过lua主动请求一次图片下载,即向主应用程序服务器a1发送图片下载请求。
74.步骤s410,主应用程序服务器通过访问主跟踪服务器。
75.步骤s411,主应用程序服务器获得存储图片下载请求对应的图片的主存储服务器。
76.步骤s412,主应用程序服务器将图片下载请求发送至主存储服务器;
77.具体地,应用程序服务器a1接收到图片下载请求,访问跟踪服务器a1,跟踪服务器a1询问存储图片的主存储服务器(即是主存储器a1还是住存储器a2)。应用程序服务器收到存储图片的主存储服务器(例如是存储服务器a1)后,向存储服务器a1发送图片上传请求。
78.步骤s413,主存储服务器响应图片下载请求。
79.步骤s414,主存储服务器将相应的图片通过主应用程序服务器发送至主nginx服务器。
80.步骤s415,主nginx服务器缓存相应的图片。
81.具体而言,nginx服务器a1向应用程序服务a1发起图片下载请求,
82.应用程序服务器a1向跟踪服务器a1询问负责该图片下载请求处理的主存储服务器(例如是存储服务器a1),跟踪服务器a1返回存储服务器a1给应用程序服务a1,应用程序服务a1向存储服务器a1发起图片文件下载请求。存储服务器a1响应图片下载请求,然后把相关图片发送至应用程序服务器a1,然后应用程序服务器a1将图片发送至nginx服务器a1。nginx服务器a1通过proxy cache将文件缓存到nginx服务器a1,nginx服务器a1将图片响应给用户。当n个用户并发访问该图片,可以直接从nginx服务器a1中返回该图片给用户。
83.本技术实施例提供的利用分布式文件系统的文件缓存方法,由于采用了上述的分布式文件系统,如此也可以在单机房中完成图片上传,避免了文件的跨机房处理问题,从而能避免了高延时,大大提高图片的效率。另外,主nginx服务器还能缓存图片,当有用户请求下载图片(尤其是即时通信中有多个用户同时请求下载同一个图片)时,就直接可以从主nginx服务器缓存的图片中下载,减少了后续的处理,进而减少了机房中其他服务器的处理压力,也能提高图片下载的速度。
84.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
85.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

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

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

相关文献