一种文件处理系统及方法
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种文件处理系统及方法。
背景技术
随着互联网的普及,通过网络方式请求文件信息越来越频繁。对于服务端来讲,传统的文件处理系统在构架上难以适应近几年来的网络发展,无法稳定地满足低延时的要求下,提供支持高并发的文件处理服务。
有鉴于此,如何在满足高稳定性、低延时要求的基础上,提供支持高并发的文件处理业务,是当前亟待解决的问题。
发明内容
本申请实施例目的是提供一种文件处理系统及方法,能够在满足高稳定性、低延时要求的基础上,提供支持高并发的文件处理业务。
为了实现上述目的,本申请实施例是这样实现的:
第一方面,提供一种文件处理系统,包括:第一存储集群、第二存储集群、服务接口和写入服务集群;
所述第一存储集群中的存储节点用于:存储符合第一特征集的业务文件;
所述第二存储集群中的存储节点用于:存储符合第二特征集的业务文件;
所述服务接口用于:基于负载均衡和并发的方式,向所述写入服务集群中的写入服务节点分配文件存储业务;
所述写入服务集群中的写入服务节点用于:在获得文件存储业务后,基于文件存储业务对应的待存储业务文件的特征,从所述第一存储集群或所述第二存储集群中选取出相匹配的存储节点以存储该待存储业务文件。
第二方面,提供了一种文件处理方法,包括:
基于负载均衡和并发的方式,向写入服务集群中的写入服务节点分配文件存储业务;
在写入服务节点获得文件存储业务后,基于写入服务节点执行:基于文件存储业务对应的待存储业务文件的特征,从第一存储集群或第二存储集群中选取出相匹配的存储节点以存储该待存储业务文件;
其中,所述第一存储集群中的存储节点用于存储符合第一特征集的业务文件;所述第二存储集群中的存储节点用于存储符合第二特征集的业务文件。
基于本申请实施例的方案,一方面,通过服务接口和写入服务集群实现了支持高并发的业务文件的存储服务,从而提高了文件处理系统的吞吐量。另一方面,基于不同的存储集群实现了针对业务文件特征的分类存储,从而提高了文件处理系统的稳定性和处理效率,且方便后续进行线性扩展。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的文件处理系统的结构示意图。
图2为本申请实施例提供的文件处理系统的第一种架构示意图。
图3为本申请实施例提供的文件处理系统的第二种架构示意图。
图4为本申请实施例提供的文件处理方法的步骤示意图。
图5为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
如前所述,随着互联网技术的普及,网络已经成为数据获取的主要方式之一。对于服务端来讲,传统的文件处理系统在构架上难以适应近几年来网络的发展,无法可靠地提供支持高并发、低延时的文件处理服务。
为此,本申请提供一种解决上述技术问题的方案,旨在满足高稳定性、低延时要求的基础上,提供支持高并发的文件处理业务。
一方面,本申请实施例提供一种文件处理系统,如图1所示,包括:第一存储集群101、第二存储集群102、服务接口103和写入服务集群104。
其中,
第一存储集群101中的存储节点用于:存储符合第一特征集的业务文件。
第二存储集群102中的存储节点用于:存储符合第二特征集的业务文件。
服务接口103用于:基于负载均衡和并发的方式,向写入服务集群中的写入服务节点分配文件存储业务。
写入服务集群104中的写入服务节点用于:在获得文件存储业务后,将文件存储业务对应的业务文件存储至第一存储集群101或第二存储集群102中的与该业务文件相匹配的存储节点。
应理解,上述第一特征集和上述第二特征集所包含的业务文件的特征可根据实际需求进行设置,从而灵活实现针对业务文件的分类存储。
基于图1所示的文件处理系统,一方面,通过服务接口和写入服务集群实现了支持高并发的业务文件的存储服务,从而提高了文件处理系统的吞吐量。另一方面,基于不同的存储集群实现了针对业务文件特征的分类存储,从而提高了文件处理系统的稳定性和处理效率,且方便后续进行线性扩展。
在上述基础之上,本申请实施例的文件处理系统还可以提供业务文件的读取服务。即图2所示,文件处理系统还包括:读取服务集群105。
其中,写入服务集群103中的写入服务节点还用于:基于负载均衡和并发的方式,向读取服务集群中的读取服务节点分配文件读取业务。
对应地,读取服务集群105中的读取服务节点用于:在获得文件读取业务后,基于文件读取业务对应的待读取业务文件的特征,从第一存储集群101或第二存储集群102中选取出相匹配的存储节点以读取该待读取业务文件。
此外,在上述基础之上,本申请实施例的文件处理系统还可以进一步针对业务文件中的内容提供搜索服务。
即,文件处理系统还包括:消息中间件106、解析服务集群107以及搜索服务器108。
其中,
消息中间件106用于:向第一存储集群101和第二存储集群102中的存储阶段获取待配置搜索服务的业务文件,并将待配置搜索服务的业务文件分配至解析服务集群107中的解析服务节点;
解析服务集群107中的解析服务节点用于:对获得的待配置搜索服务的业务文件进行解析,并将解析获得的有效内容存储至搜索服务器108。
搜索服务器108用于:提供针对本地存储的有效内容的搜索服务。
具体地,本申请实施例可以预先设置需要提供搜索服务的业务文件的特征,消息中间件106可以根据预先设置的需要提供搜索服务的业务文件的特征,来从第一存储集群101和第一存储集群102中挑选需要下发解析服务节点的业务文件。
下面结合实际的应用场景,对文件处理系统进行详细介绍。
在本应用场景中,文件处理系统采用异步的模式,及时响应处理,异步后端逻辑采用多线程方式处理,按业务文件的大小和/或类型建立多个线程池进行并行处理,存储上采用读写分离的模式,功能上也将存储(上传)和读取(下载)进行隔离,有效的保证业务文件存取的高效性,提高吞吐量等各项性能指标。
其中,如图3所示:
服务接口104采用Linux虚拟服务器(LVS,Linux Virtual Server)+Keepalive(一种可以检测死连接的机制)的模式,实现基于负载均衡和并发的方式,将文件存储业务分配至写入服务集群中的写入服务节点,以及,将文件读取业务分配至读取服务集群中的读取服务节点。
写入服务集群103和读取服务集群105可以由多个对象存储(OSS,Object StorageService)节点实现在互联网任何位置对业务文件进行存储和读取。
在文件处理系统的底层,第一存储集群101采用HBASE节点,第二存储集群102采用CEPH节点。其中,HBASE节点和CEPH节点均采用的分布式存储系统。HBASE节点针对较小的业务文件的存取具有非常高的效率,而CEPH更适合存取较大的业务文件。
针对HBASE节点和CEPH节点的存储特点,OSS节点在获得文件存储业务后,基于待存储业务文件的大小进行判断:若对应的待存储业务文件未达到1m,则将待存储业务文件存储至HBASE节点;若对应的待存储业务文件达到1m,则将待存储业务文件存储至CEPH节点。此外,OSS节点还可以根据待存储业务文件的类型,来决定是否存储在HBASE节点还是存储在CEPH节点,由于方式并不唯一,本文不再举例赘述。
与存储相对应地,针对业务文件的读取,OSS节点在获得文件读取业务后,基于待读取业务文件的大小进行判断:若待读取业务文件未达到1m,则将从HBASE节点中查询该待读取业务文件;若待读取业务文件达到1m,则将从CEPH节点中查询待读取业务文件。当然,在上述基础之上,OSS节点还可以进一步利用待读取业务文件的其他信息来进行定位,由于不涉及本申请实施例的改进,因此不再举例赘述。
消息中间件106可以由Apache软件基金会开发的开源流处理平台KAFKA实现。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。
KAFKA可以获取HBASE节点和CEPH节点中需要提供搜索服务的业务文件,并将其分配至解析服务集群107中的解析服务节点。其中,HBASE节点存储的业务文件可以采用BASE64的格式直接下发给KAFKA,而CEPH节点存储的业务文件,则需要由KAFKA通过接口进行主动读取。
最终,解析服务节点消费KAFKA,并进行针对业务文件的相关逻辑处理(如数据解析、数据清理、数据加工等),得到业务文件的有效内容,并将有效内容存储到搜索服务器108,以供文件处理系统使用。
其中,搜索服务器108也可以采用集群模式。作为其中一种可行方案,搜索服务器108可以由多个Elastic Search节点组成。Elastic Search基于RESTful web接口实现了分布式多用户能力的全文搜索引擎。其中,Restful只要维护资源的状态,而不需要维护客户端的状态。对于它的接口来说,每次请求都是全新的,只需要针对本次请求作相应的操作,不需要将本次请求的相关信息记录下来,因此特别适用于网络这类高并发的文件存取方式。
下面对本应用场景的文件处理系统的存储性能进行测试。其中,测试相关信息如下:
1)测试工具:Siege。
2)测试文件:1k、4k、10k、100k、2M文件。
3)测试维度:1台服务器1个节点。
对应地的测试结果如下表所示:
基于上测试结果可以看出,本应用场景的文件处理系统具有较高水准的TPS(每秒事务处理量)性能,能够处理高并发的文件存储业务。
综上所述,本申请实施例的文件处理系统通过Lvs+keepalive实现OSS服务的负载均衡,OSS服务对外提供异步上传接口,根据业务文件的大小和/或类型分别进行处理,将业务文件存储到HBASE节点或CEPH节点。此外,部分有搜索需求的业务文件进一步下发至KAFKA,由KAFKA传递给解析服务节点以进行解析,并将解析获得有效的内容存储到ELASTICSEARCH中。整个构架层次之间分工明确、紧密度高,具有“高内聚、低耦合”的特点。
以上是对本申请实施例文件处理系统的介绍。应理解,本申请实施例对存储集群的数量不作限定。即,文件处理系统还可以包括用于存储符合第三特征集的业务文件第三存储集群,……,用于存储符合第N特征集的业务文件的第N存储集群。
另一方面,本申请实施例还提供一种文件处理方法,如图3所示,包括:
步骤S402,基于负载均衡和并发的方式,向写入服务集群中的写入服务节点分配文件存储业务;
步骤S404,在写入服务节点获得文件存储业务后,基于写入服务节点执行:基于文件存储业务对应的待存储业务文件的特征,从第一存储集群或第二存储集群中选取出相匹配的存储节点以存储该待存储业务文件;
其中,所述第一存储集群中的存储节点用于存储符合第一特征集的业务文件;所述第二存储集群中的存储节点用于存储符合第二特征集的业务文件。
基于图3所示的文件处理方法,一方面,通过服务接口和写入服务集群实现了支持高并发的业务文件的存储服务,从而提高了文件处理系统的吞吐量。另一方面,基于不同的存储集群实现了针对业务文件特征的分类存储,从而提高了文件处理系统的稳定性和处理效率,且方便后续进行线性扩展。
可选地,所述第一特征集包括:业务文件的大小未超过预设阈值的特征,和/或,业务文件的类型为邮件或网页的特征;
所述第二特征集包括:业务文件的大小超过所述预设阈值的特征,和/或,业务文件为除邮件和网页外的其余类型的特征。
可选地,本申请实施例还可以提供针对业务文件的读取服务,即业务处理方法还包括:
基于负载均衡和并发的方式,向读取服务集群中的读取服务节点分配文件读取业务;
在读取服务节点获得文件读取业务后,基于读取服务节点执行:基于文件读取业务对应的待读取业务文件的特征,从所述第一存储集群或所述第二存储集群中选取出相匹配的存储节点以读取该待读取业务文件。
可选地,本申请实施例还可以提供针对业务文件的搜索服务,即业务处理方法还包括:
基于所述消息中间件执行:向所述第一存储集群和所述第二存储集群中的存储阶段获取待配置搜索服务的业务文件,并将待配置搜索服务的业务文件分配至所述解析服务集群中的解析服务节点;
基于所述解析服务节点执行:对获得的待配置搜索服务的业务文件进行解析,并将解析获得有效内容存储至搜索服务器:
基于所述搜索服务器执行:提供针对搜索服务器本地存储的有效内容的搜索服务。
可选地,所述第一存储集群中的存储节点包括HBASE节点,所述第二存储集群中的存储节点包括CEPH节点。
显然,上文所述的文件处理系统可以作为本申请实施例的文件处理方法的执行主体,以实现文件处理方法在图1所示的步骤和功能。由于原理相同,本文不再举例赘述。
图5是本说明书的一个实施例电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成问答对数据挖掘装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
基于负载均衡和并发的方式,向写入服务集群中的写入服务节点分配文件存储业务;
在写入服务节点获得文件存储业务后,基于写入服务节点执行:基于文件存储业务对应的待存储业务文件的特征,从第一存储集群或第二存储集群中选取出相匹配的存储节点以存储该待存储业务文件;
其中,所述第一存储集群中的存储节点用于存储符合第一特征集的业务文件;所述第二存储集群中的存储节点用于存储符合第二特征集的业务文件。
基于本申请实施例的电子设备,一方面,通过服务接口和写入服务集群实现了支持高并发的业务文件的存储服务,从而提高了文件处理系统的吞吐量。另一方面,基于不同的存储集群实现了针对业务文件特征的分类存储,从而提高了文件处理系统的稳定性和处理效率,且方便后续进行线性扩展。
上述如本说明书图4所示实施例揭示的文件处理方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括XX处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
应理解,本说明书实施例的电子设备可以实现图4所示的实施例的功能,本文不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
此外,本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令。
其中,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图4所示实施例的方法,并具体用于执行以下方法:
基于负载均衡和并发的方式,向写入服务集群中的写入服务节点分配文件存储业务;
在写入服务节点获得文件存储业务后,基于写入服务节点执行:基于文件存储业务对应的待存储业务文件的特征,从第一存储集群或第二存储集群中选取出相匹配的存储节点以存储该待存储业务文件;
其中,所述第一存储集群中的存储节点用于存储符合第一特征集的业务文件;所述第二存储集群中的存储节点用于存储符合第二特征集的业务文件。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。