【技术实现步骤摘要】
对账系统中的大文件分布式处理方法及装置
[0001]本专利技术涉及涉及信息
,尤其涉及一种对账系统中的大文件分布式处理方法及装置。
技术介绍
[0002]第三方支付行业的渠道对账系统,主要用于比对第三方支付公司与两联数据(银联、网联),两联交易数据通过文件提供,交易量大的情况下相应的文件也比较大,当文件大小大于应用服务器可处理内存的一定比例时,解析文件会碰到瓶颈。
[0003]目前,第三方支付中的渠道对账系统,多使用单节点处理,处理大文件一般有三种方式,一是通过增加单点内存,二是通过拆分文件后依次处理,三是逐条解析后放入内存数据库进行处理。这三种方式都是单节点处理,单节点处理对账文件有两个共同的弊端,其一是单节点系统稳定性不够,单节点宕机后无其他节点处理业务,二是单节点处理效率慢,单节点只能串行处理。第一种增加内存的方式还有另外一个弊端,是应用过于依赖硬件配置,第三种处理方式的另外一个弊端是依赖于内存数据库等中间件。
[0004]因此,如何对对账系统中的大文件进行分布式处理,以有效规避传统方案中硬件不足 ...
【技术保护点】
【技术特征摘要】
1.对账系统中的大文件分布式处理方法,所述方法适用于包括文件服务器和N个节点的集群中,每个节点对应一个应用服务器,所述文件服务器为所述N个节点中的至少一个提供对账文件,所述N为大于等于1的正整数;其特征在于,所述方法包括:将集群中各应用服务器所在的节点按照预设的编号规则进行编号;所述文件服务器将至少一个对账文件按预设的分片策略进行逻辑分片,将逻辑分片后的文件按序分配至相应节点的缓存中;每个节点从所述文件服务器中下载完整的对账文件,并将对账文件存储在本地,各节点根据当前节点的编号确定读取的相应的文件片,通过字节流的方式读取文件片,获取相应的文件片数据,直至完整的对账文件被节点全部读取成功;其中,读取的每一个文件片数据存储于一块连续内存中,包括一个起始位置的首字符、一个结束位置的结束符和位于首字符和结束符之间的至少一个换行符,所述换行符用于触发数据换行操作;获取所述文件片数据,对所述文件片数据进行数据处理,包括:A,计算所述文件片数据对应的尾换行符的索引位置,所述尾换行符为一个文件片数据中包含的最后一个换行符;判断该文件片数据的结束符是否为尾换行符,若是,则剔除尾换行符后面的字节流数据;若否,则再次读取对账文件,从该尾换行符的索引位置往后读,读到下一个换行符后结束,再将此次重新读取的字节流数据合并到先前分片读取的字节流数据中;B,计算所述文件片数据对应的首换行符的索引位置,所述首换行符为一个文件片数据中包含的第一个换行符;判断该文件片数据的首字符是否为首换行符,若否,则直接剔除首换行符之前的字节流数据。2.根据权利要求1所述的对账系统中的大文件分布式处理方法,其特征在于,所述预设的编号规则包括:应用服务器所在节点IP的hash值对节点的数量取余,作为该节点的编号Q
n
,即Q
n
=IP
n
%N;其中,Q
n
为集群中第n个节点的编号,IP
n
为集群中第n个节点的节点IP值,N为集群中的节点数量。3.根据权利要求1所述的对账系统中的大文件分布式处理方法,其特征在于,所述预设的分片策略包括:获取节点的内存大小,取内存大小的预设比例作为文件片的大小;将对账文件的大小除以文件片的大小,得到对账文件对应的分片数量,分片数量对应需要处理对账文件的节点数量;其中,当需要的节点数量小于或等于真实部署的节点数量时,所述文件服务器对各节点进行直接分配,当需要的节点数量大于真实部署的节点数量时,所述文件服务器对各节点进行循环分配。4.根据权利要求1所述的对账系统中的大文件分布式处理方法,其特征在于,所述方法还包括:设置监控模块,监控模块包括守护线程,用于监控集群中各节点的文件处理过程,其中,启动守护线程定时扫描各节点的文件处理过程,若所有分片任务均正常处理结束,则当前对账文件处理结束;若存在某个分片任务处理失败、或者当前节点的处理时间超过预设时间,则判定该分片任务处理失败,对于处理失败的任务由定时任务发起重新处理。5.根据权利要求4所述的对账系统中的大文件分布式处理方法,其特征在于,所述方法
还包括:若某个节点处理失败,则人工或守护线程修改该节点对应的编号,当守护线程扫描到符合该编号的当前节点的任务未成功时,发起重新解析;处理成功...
【专利技术属性】
技术研发人员:轩焕焕,吴龙伟,
申请(专利权)人:宝付网络科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。