掌桥专利:专业的专利平台
掌桥专利
首页

一种分布式海量文件传输方法

文献发布时间:2023-06-19 18:30:43


一种分布式海量文件传输方法

技术领域

本发明涉及一种分布式文件传输领域,尤其涉及一种分布式海量文件传输方法。

背景技术

随着互联网技术与电子技术的迅猛发展,网络在人们生活当中逐渐扮演的越来越重要的角色。通过在信息处理,辅助设计等等方面,互联网彻底改变了人们的生活方式。而当今在互联网时代,网络极其重要的诸多功能之一即是文件传输,完成在不同地区,单位,个人之间的信息交互。使用传统的移动载体等文件流转方式已经完全不能满足当前的办公要求,对比以往的传输方式,利用网络可以有效的节约成本,提高办公效率。利用便利的网络资源,代替传统载体来进行文件传输交互已经成为日后发展的主要趋势,采用这种办公方式可以极大程度的节约成本与提高工作效率。

目前针对文件传输的网络结构及应用协议种类繁多,主要结构有对等网,以及服务器/客户机等结构。主要的相关应用有FTP,TFTP,BitTorrent等。这些网络结构与协议都在不同场景下很好的完成了文件传输的工作。但在某些特定场景下现有协议往往不能很好的覆盖和满足某些条件下的特殊需求。

有些政府部门、军队部队、金融行业等重要机构为保证所使用的信息系统的安全,往往会把单位内部网络与外部的Internet网络进行阻断,实施物理隔离,切断任何可能与外部网络发起连接的途径。而在单位内部以某种网络结构组建起内部的文件传输系统,同时要求内部系统安全可靠高效。

而在这种特殊的条件约束下,越来越多的单位采用目前比较主流的分布式的网络结构来搭建内部的文件传输系统,该网络的主要特点是由许多各自独立的节点分布在不同的物理位置,而它们之间可以两两连接。该网络当中的节点至少拥有两条连接线路,即使其中某条线路损坏不可用,通信也可以由其他链路完成,具有较高的可靠性。同时,网络易于扩充。分布式网络当中的节点可以任意两节点之间直接互联,在进行数据交换的同时可以选择不同的路由方式。同时分布式网络也有着它无法忽视的缺点。由于网络结构的原因,分布式网络往往不能很好的实现传输记录,审计,可追踪,抗抵赖等安全问题,如果所传输的文件有很高的安全要求时不能采用常规的处理手段。因而,如何实现安全、高效、可靠的分布式海量文件传输方法是亟须解决的关键问题。

发明内容

本发明的目的在于提供一种分布式海量文件传输方法,以解决上述背景技术中提出的问题。

为了实现上述目的,本发明采用了如下技术方案:

一种分布式海量文件传输方法,其特征在于,包括以下步骤以用于实现所提出的分布式海量文件传输方法:

S1:首先,分布式采集数据进行上传。主要负责在源端数据库获取所需传输数据,可以多个源端同时运行实现分布式数据采集。通过配置定时任务和需要传输数据表名称进行定时数据采集,将采集数据实时上传至Kafka。

S2:然后,在Kafka中进一步缓存数据,同时异步处理数据。在Kafka中将数据根据设置的峰值(时间:6小时;大小:500M)转成文件,并将文件压缩上传至SFTP服务器。SFTP服务器用于保障文件的安全可靠传输,可以配置多个服务器同时传输,将文件从省侧传至总部侧。

S3:进一步地,将已转成文件的数据解压放入固定文件目录。配置具体的映射规则、分隔符将数据转成可执行SQL数据并,执行SQL数据入库操作,执行完毕后将执行SQL语句统计信息上传至监控中心与数据上传服务传入信息匹配,如发现异常进行预警并发送邮件。

S4:最后,通过监控中心监测传输链路健康情况、采集日志、设置定时任务时间、对比输入数据与输出数据准确性。

作为本技术方案的进一步改进方案,实现低延时海量数据传输的方法包括:

所提出的分布式海量文件传输方法是通过结合微服务、SFTP、kafka、ETL等第三方组件结合组成的一种海量文件传输方法。该方法通过采用分布式传输可以支持多个源端数据同时采集传输、入库,根据监控中心监控情况和实际使用情况每个省的链路中的服务支撑平行扩展,同时支持多个省同时进行数据传输,依据源端标识进行指定目标端入库。

作为本技术方案的进一步改进方案,实现大量的数据传输的方法包括:

所提出的分布式海量文件传输方法通过采用SFTP方式,其非常适合海量数据传输,具有速度快、效率高、方便、高效的优点。且不会存在超时、占用网络带宽的问题,并且规避了网络传输协议等概念。

作为本技术方案的进一步改进方案,保障数据库的稳定性的方法包括:

所提出的分布式海量文件传输方法通过错开数据库使用高峰来保障数据库的稳定性。由于目标端数据库通常会被很多业务功能使用,为了保障数据库的稳定性,需要在数据库被使用资源不多时进行数据库操作,可以通过定时任务和监控中心指令进行错开数据库使用高峰期进行数据入库。

作为本技术方案的进一步改进方案,实现不同数据库间的数据传输的方法包括:

所提出的分布式海量文件传输方法通过采用ETL方式,ETL以业务目标为导向,可以配置选择数据链路的先关数据源与数据目的地,配置不同数据源间的映射关系,使数据传输更灵活,并且图形化的配置操作更简单便捷灵活。

作为本技术方案的进一步改进方案,实现可靠性高性数据传输的方法包括:

所提出的分布式海量文件传输方法通过设置监控中心,监控中心可以监控数据上传服务在源端获取数据的各个维度统计值和此次唯一事件ID,如修改行数、表名、字段名、数据库类型等,在入库服务执行入库操作完但没执行事务时返回给监控中心执行数据库各个维度数据是否与上传服务匹配,如果匹配则执行事务完成入库,如不匹配监控中心生成报告同时发送邮件给操作人员分析问题。同时监控中心会监控各个组件服务器运行状态,设置峰值预警,保障服务器稳定运行。

与现有技术相比,本发明的有益效果是:

本发明公开了一种通过结合微服务、SFTP、kafka、ETL等第三方组件结合组成的海量文件传输方法,其支持多个源端数据同时采集传输、入库,根据监控中心监控情况和实际使用情况每个省的链路中的服务支撑平行扩展,同时支持多个省同时进行数据传输,依据源端标识进行指定目标端入库。所提出的方法通过使用微服务实现数据定时采集、数据与文件相互转换、数据传输的链路监控,通过与kafka和ETL等第三方开源工具组合完成数据传输。此方法可以实现不同数据库的、复杂环境的、错峰的、大量的、一定时效性的、可靠的数据传输,极大地减少了人员维护成本,实现自动化的数据传输方法。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明所提出的分布式海量文件传输方法所采用的整体服务架构;

图2为本发明所提出的分布式海量文件传输方法的整体流程图;

图3为本发明所提出的分布式海量文件传输方法的文件处理流程图;

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。在下列段落中参照附图以举例方式更具体地描述本发明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

本实施例根据图1所示的海量文件传输服务架构,分析所述的分布式海量文件传输方法。

请参阅附图1所示,整体架构采用springcloud微服务架构搭建,服务包括:基于eureka的注册中心服务,基于zuul的网关服务,基于oshi的服务器信息采集服务、数据上传服务、数据转文件服务、文件转数据服务以及监控中心服务。监控中心服务均采用springboot框架开发并全部注册到注册中心服务,服务间通过feign调用。监控中心设置好采集服务器信息频率,CPU、磁盘、内存、JVM等大小阈值,如达到阈值则发送邮件给相关人员对其服务器检查,相关信息通过vue框架开发的WEB页面展示。

请参阅附图2所示,一种分布式海量文件传输方法,其特征在于,包括以下步骤以用于实现所提出的分布式海量文件传输方法:

S1:首先,分布式采集数据进行上传。主要负责在源端数据库获取所需传输数据,可以多个源端同时运行实现分布式数据采集。通过配置定时任务和需要传输数据表名称进行定时数据采集,将采集数据实时上传至Kafka。

S2:然后,在Kafka中进一步缓存数据,同时异步处理数据。在Kafka中将数据根据设置的峰值(时间:6小时;大小:500M)转成文件,并将文件压缩上传至SFTP服务器。SFTP服务器用于保障文件的安全可靠传输,可以配置多个服务器同时传输,将文件从省侧传至总部侧。

S3:进一步地,将已转成文件的数据解压放入固定文件目录。配置具体的映射规则、分隔符将数据转成可执行SQL数据并,执行SQL数据入库操作,执行完毕后将执行SQL语句统计信息上传至监控中心与数据上传服务传入信息匹配,如发现异常进行预警并发送邮件。

S4:最后,通过监控中心监测传输链路健康情况、采集日志、设置定时任务时间、对比输入数据与输出数据准确性。

进一步地,实现低延时海量数据传输的方法包括:

所提出的分布式海量文件传输方法是通过结合微服务、SFTP、kafka、ETL等第三方组件结合组成的一种海量文件传输方法。该方法通过采用分布式传输可以支持多个源端数据同时采集传输、入库,根据监控中心监控情况和实际使用情况每个省的链路中的服务支撑平行扩展,同时支持多个省同时进行数据传输,依据源端标识进行指定目标端入库。

进一步地,实现大量的数据传输的方法包括:

所提出的分布式海量文件传输方法通过采用SFTP方式,其非常适合海量数据传输,具有速度快、效率高、方便、高效的优点。且不会存在超时、占用网络带宽的问题,并且规避了网络传输协议等概念。

进一步地,保障数据库的稳定性的方法包括:

所提出的分布式海量文件传输方法通过错开数据库使用高峰来保障数据库的稳定性。由于目标端数据库通常会被很多业务功能使用,为了保障数据库的稳定性,需要在数据库被使用资源不多时进行数据库操作,可以通过定时任务和监控中心指令进行错开数据库使用高峰期进行数据入库。

进一步地,实现不同数据库间的数据传输的方法包括:

所提出的分布式海量文件传输方法通过采用ETL方式,ETL以业务目标为导向,可以配置选择数据链路的先关数据源与数据目的地,配置不同数据源间的映射关系,使数据传输更灵活,并且图形化的配置操作更简单便捷灵活。

进一步地,实现可靠性高性数据传输的方法包括:

所提出的分布式海量文件传输方法通过设置监控中心,监控中心可以监控数据上传服务在源端获取数据的各个维度统计值和此次唯一事件ID,如修改行数、表名、字段名、数据库类型等,在入库服务执行入库操作完但没执行事务时返回给监控中心执行数据库各个维度数据是否与上传服务匹配,如果匹配则执行事务完成入库,如不匹配监控中心生成报告同时发送邮件给操作人员分析问题。同时监控中心会监控各个组件服务器运行状态,设置峰值预警,保障服务器稳定运行。

具体地,数据上传服务采用springboot微服务开发,定时任务每一小时(根据业务需求有每一小时、每日、每周、每月执行,生成事件唯一ID)扫描所需传输表,根据表字段CREATE_TIME查询出近一小时钟内入库的增量数据,并生产到kafka中,同时调用监控中心接口上传上传数据统计信息(省份编码、表名、字段名、修改行数,唯一ID等)。

具体地,监控中心利用微服务使用kafka的接口来监控kafka的数据传输topic的数据增量信息、offset、定时任务查询总量后计算差值,用于查看数据量大小等信息。

具体地,处理scan目录下省侧通过SFTP上传的数据文件压缩包,进行压缩包解析,验证数据格式,根据opType判断类型是新增还是更新,更新的数据发送至MQ,新增的数据按照gbase库中配置表(province_fileds)中对应的表字段顺序进行解析拼接,以#%#为字段分割符,将内容写入至create目录下对应dbl文件中。并将文件信息新增或更新至oracle库中的batch_information表中。

具体地,处理scan目录下省侧通过SFTP上传的文件记录信息txt文件,将文件记录数据进行更新或新增至oracle库中的batch_information表中。

请参阅附图3所示,扫描获取create目录下解析后的dbl文件,进行文件分发,分别分发至待发往oracle平台的临时目录、待发往大数据平台的临时目录、待发往hive平台的临时目录、待发往北京侧的临时目录,最后将该文件从create目录移动至SFTP待入库gbase目录下。

具体地,监控中心获取各个组件部署所在服务器信息,包括CPU的核数、CPU总使用率、CPU系统使用率、CPU用户使用率、CPU当前等待率、CPU当前空闲率,包括JVM的当前占用内存总数、JVM最大可用内存数、JVM空闲内存、JDK版本、JDK路径,包含内存信息的内存总量、已用内存、剩余内存,包括系统相关信息服务器名称、服务器IP、项目路径、操作系统、系统架构,系统文件先关信息盘符路径、文件类型、总大小、剩余大小、已使用量、资源使用率。可以在监控中心页面配置各项数据峰值,达到峰值发出报警信息,同步邮箱发送给配置人员。监控中心可以配置文件转数据服务的定时任务时间,用来实现错开高峰期使用数据库的操作。监控中心可以配置数据文件删除时间。监控中心可以读取指定文件目录下文件日志信息,可以根据查看各流程日志进行问题排查,实现距离目标端最近步骤重启对应事件任务完成续传功能。

以上所述,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上所述而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。

相关技术
  • 一种海量数据点实时数据的分布式管理方法及系统
  • 一种海量文件传输系统数据脱敏方法
  • 一种高效安全海量文件传输方法
技术分类

06120115595727