基于消息队列和fastDFS微服务架构的异步文件导出方法及系统技术方案

技术编号:24863092 阅读:10 留言:0更新日期:2020-07-10 19:13
本发明专利技术公开了一种基于消息队列和fastDFS微服务架构的异步文件导出方法及系统,属于文件管理技术领域,本发明专利技术要解决的技术问题为如何满足异步处理高并发情况下大数据量的文件导出,又不占用业务侧太多IO,提升系统稳定性,采用的技术方案为:该方法是通过认证授权模块、消息组装及推送模块、消息消费处理模块、文件异步生成及上传模块和异步下载模块完成对文件的异步生成及下载,通过消息队列完成分布式部署,进而实现各模块之间松耦合;具体如下:S1、用户在浏览器登录,向认证授权模块的授权认证服务请求认证授权;S2、认证授权通过后,用户选择需要导出的数据进行导出操作,消息组装及推送模块将消息自动根据业务进行区分处理,并组装消息。

【技术实现步骤摘要】
基于消息队列和fastDFS微服务架构的异步文件导出方法及系统
本专利技术涉及文件管理
,具体地说是一种基于消息队列和fastDFS微服务架构的异步文件导出方法及系统。
技术介绍
传统的同步导出下载虽然可以满足80%的文件导出需求,但是对于数据量大,业务拼接复杂的系统来说,等待时间较长甚至超时、用户体验较差、对系统服务实时压力较大等都是不可避免的。常用的java导出方式有poi和流式两种导出方式,通过poi方式导出,会实时占用大量内存,一旦有其他多线程并发就会出现内存溢出的场景,导致系统崩溃,而流式导出的方式虽然一定程度上可以满足当前需求的需要,但也是在实时占用系统的IO,很容易导致后续操作等待等问题。而异步文件生成及下载是基于微服务思想独立于业务模块之外单独运行,不对业务组件造成影响,通过业务类型、文件类型等将不同的业务场景进行逻辑分离处理,能让业务线程、文件异步生成线程在后台运行,没有等待时间,处理完成后通知前台进行展示下载即可,这种方式不仅大大降低了对业务组件的压力,而且提高了用户体验。其实这种场景在现实生活中也很常见,比如医院里面拍CT,做体检时的体检报告,都是延后去拿结果的。微服务架构是最近几年新提出的一个概念,相较于传统的单体架构,微服务架构将单一架构的功能拆分成多个小型的具有完整业务功能的服务,服务之间通过API或者消息进行串联起来,同时各个微服务之间的开发、测试与部署都是独立进行,大大降低了系统之间的耦合程度,提高了系统的可扩展性。消息队列则是被应用于众多系统中的常用技术,消息队列的异步化和松耦合机制,可以提升系统资源的利用率和系统的可扩展性,同时消息队列自带分布式和容灾特性,从而提升系统性能和容错能力。现有的文件异步导出机制,是对微服务架构下的优化并不充分,故如何满足异步处理高并发情况下大数据量的文件导出,实现微服务架构下文件的生产、存储及异步下载,又不占用业务侧太多IO,减少对系统的实时压力,提升系统稳定性是目前亟待解决的技术问题。专利号为CN107526635A的专利文献公开了一种数据异步导出方法,包括步骤1:在导出页面设置导出数据的筛选条件;步骤2、服务器根据步骤1提供的筛选条件查询并判断数据库里数据量大小,根据配置文件所设置的大数据阈值DOWNLOAD_SIZE决定是实时导出,还是邮件通知下载导出;步骤3:若数据库里数据为少量数据,则此少量数据采用实时导出方式;步骤4:若数据库里数据为大量数据,则将此大量数据生成导出文件,并存储在指定服务器中,发送下载链接至指定的邮件地址。但是该技术方案不能满足异步处理高并发情况下大数据量的文件导出需求。专利号为CN103810238A的专利文献公开了一种基于异步处理的大数据量Excel文件导出方法,包括以下步骤:Excel辅助应用模块将Excel数据分成若干数据组;当应用系统向Excel辅助应用模块发送Excel数据导出请求时,Excel辅助应用模块向多个处理器提出Excel数据导出请求;每个处理器处理Excel数据导出请求时,都在指定存储路径新建一个Excel文件;多个Excel文件叠加构成的完整的Excel文件,用户在存储路径下查看并下载生成的Excel文件。但是该技术方案不能满足异步处理高并发情况下大数据量的文件导出需求。
技术实现思路
本专利技术的技术任务是提供一种基于消息队列和fastDFS微服务架构的异步文件导出方法及系统,来解决如何满足异步处理高并发情况下大数据量的文件导出,实现微服务架构下文件的生产、存储及异步下载,又不占用业务侧太多IO,减少对系统的实时压力,提升系统稳定性的问题。本专利技术的技术任务是按以下方式实现的,一种基于消息队列和fastDFS微服务架构的异步文件导出方法,该方法是通过认证授权模块、消息组装及推送模块、消息消费处理模块、文件异步生成及上传模块和异步下载模块完成对文件的异步生成及下载,通过消息队列完成分布式部署,进而实现各模块之间松耦合;具体如下:S1、用户在浏览器(webclient)登录,向认证授权模块的授权认证服务(AuthoritionServer)请求认证授权;S2、认证授权通过后,用户选择需要导出的数据进行导出操作,由于业务不同导出内容不同,消息组装及推送模块将消息自动根据业务进行区分处理,并组装消息;S3、消息消费处理模块接收到组装消息后,进行逻辑处理,并异步获取到需要导出的数据集;S4、文件异步生成及上传模块根据数据集生成临时文件,并上传到fastDFS文件系统中进行临时存储,存储完成后更新库中文件状态;S5、文件生成处理完成后,页面展示下载的文件,用户通过异步下载模块直接将数据导出。作为优选,所述步骤S1中的认证授权模块用于对登录用户进行授权认证,认证通过才能够对文件进行导出操作。作为优选,所述步骤S2中认证授权通过后,消息组装及推送模块生成一条状态为生成中的记录,组装消息体发送到消息消费处理模块(MQ消息消费端)。更优地,所述步骤S2中组装消息的格式根据导出类型决定,导出类型包括直接执行sql查询数据的方式导出和通过调用接口的方式获取数据后导出。更优地,所述步骤S3中消息消费处理模块的工作过程具体如下:S301、消息消费处理模块接收到消息后,根据获取到的报文进行解析处理;S302、根据消息内容获取到要导出的数据集;S303、调用文件异步生成及上传模块。作为优选,所述步骤S5中用户通过异步下载模块直接将数据导出具体是:用户根据单独下载界面中提供的链接,直接到fastDFS文件系统中进行文件的下载。一种基于消息队列和fastDFS微服务架构的异步文件导出系统,该系统包括,认证授权模块,用于对登录用户进行授权认证,先进行认证,只有认证通过才能够对文件进行导出操作;消息组装及推送模块,用于在认证通过后,生成一条状态为生成中的记录,再组装消息体发送到消息消费处理模块(MQ消息消费端);消息消费处理模块,用于在接收到消息后,根据获取到的报文进行解析处理,再根据消息内容获取到要导出的数据集,并调用文件异步生成及上传模块;文件异步生成及上传模块,用于在MQ消息消费端接收获取到数据集后,临时生成文件,并上传到fastDFS文件系统中进行临时存储,存储完成后并更新库中文件状态;异步下载模块,用于在文件生成处理完成后,直接将数据完成导出。作为优选,所述组装消息的格式根据导出类型决定,导出类型包括直接执行sql查询数据的方式导出和通过调用接口的方式获取数据后导出。更优地,所述异步下载模块的工作过程具体如下:用户根据单独下载界面中提供的链接,直接到fastDFS文件系统中进行文件的下载。本专利技术的基于消息队列和fastDFS微服务架构的异步文件导出方法及系统具有以下优点:(一)本专利技术通过引入消息队列和fastDFS实现对文件的异步生成、上传及下载,可以涵盖多个应用场景,根据不同的业务类型及文件类型进本文档来自技高网
...

【技术保护点】
1.一种基于消息队列和fastDFS微服务架构的异步文件导出方法,其特征在于,该方法是通过认证授权模块、消息组装及推送模块、消息消费处理模块、文件异步生成及上传模块和异步下载模块完成对文件的异步生成及下载,通过消息队列完成分布式部署,进而实现各模块之间松耦合;具体如下:/nS1、用户在浏览器登录,向认证授权模块的授权认证服务请求认证授权;/nS2、认证授权通过后,用户选择需要导出的数据进行导出操作,消息组装及推送模块将消息自动根据业务进行区分处理,并组装消息;/nS3、消息消费处理模块接收到组装消息后,进行逻辑处理,并异步获取到需要导出的数据集;/nS4、文件异步生成及上传模块根据数据集生成临时文件,并上传到fastDFS文件系统中进行临时存储,存储完成后更新库中文件状态;/nS5、文件生成处理完成后,页面展示下载的文件,用户通过异步下载模块直接将数据导出。/n

【技术特征摘要】
1.一种基于消息队列和fastDFS微服务架构的异步文件导出方法,其特征在于,该方法是通过认证授权模块、消息组装及推送模块、消息消费处理模块、文件异步生成及上传模块和异步下载模块完成对文件的异步生成及下载,通过消息队列完成分布式部署,进而实现各模块之间松耦合;具体如下:
S1、用户在浏览器登录,向认证授权模块的授权认证服务请求认证授权;
S2、认证授权通过后,用户选择需要导出的数据进行导出操作,消息组装及推送模块将消息自动根据业务进行区分处理,并组装消息;
S3、消息消费处理模块接收到组装消息后,进行逻辑处理,并异步获取到需要导出的数据集;
S4、文件异步生成及上传模块根据数据集生成临时文件,并上传到fastDFS文件系统中进行临时存储,存储完成后更新库中文件状态;
S5、文件生成处理完成后,页面展示下载的文件,用户通过异步下载模块直接将数据导出。


2.根据权利要求1所述的基于消息队列和fastDFS微服务架构的异步文件导出方法,其特征在于,所述步骤S1中的认证授权模块用于对登录用户进行授权认证,认证通过才能够对文件进行导出操作。


3.根据权利要求1所述的基于消息队列和fastDFS微服务架构的异步文件导出方法,其特征在于,所述步骤S2中认证授权通过后,消息组装及推送模块生成一条状态为生成中的记录,组装消息体发送到消息消费处理模块。


4.根据权利要求1或2或3所述的基于消息队列和fastDFS微服务架构的异步文件导出方法,其特征在于,所述步骤S2中组装消息的格式根据导出类型决定,导出类型包括直接执行sql查询数据的方式导出和通过调用接口的方式获取数据后导出。


5.根据权利要求1所述的基于消息队列和fastDFS微服务架构的异步文件导出方法,其特征在于,所述步骤S3中消息消费处理模块...

【专利技术属性】
技术研发人员:徐士强魏金雷杨继伟
申请(专利权)人:山东汇贸电子口岸有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1