一种交易流水的处理方法及系统与流程

文档序号:28594546发布日期:2022-01-22 10:03阅读:336来源:国知局
导航: X技术> 最新专利> 计算;推算;计数设备的制造及其应用技术
一种交易流水的处理方法及系统与流程

1.本发明涉及互联网技术领域,尤其涉及一种交易流水的处理方法及系统。


背景技术:

2.交易流水的处理和存储具有广泛的应用,大部分业务系统每天都会产生大量交易流水数据,但流水数据的处理和存储会严重影响系统性能。业务系统往往又对响应速度、系统稳定性等有较高要求。同时,交易流水记录作为统计分析预测相关业务的数据基础,具有重要作用。
3.现在大部分系统的交易流水处理和存储功能与业务功能耦合在一起,而流水数据具有数据量大、存储耗时长的特点,这样会严重影响业务系统的响应速度,而且业务处理流程比较长,也会影响系统稳定性。同时,在处理过程中,一旦发生数据库无法连接等异常情况会导致流水入库失败,造成数据丢失并难以找回,从而影响后续业务的统计分析结果。


技术实现要素:

4.为解决现有技术的不足,本发明提出一种交易流水的处理方法及系统,通过使用消息队列将业务系统与流水处理系统解耦合,提高业务系统的响应速度并可以减小交易峰值期间流水系统的压力;使用hessian做流水对象的序列化和反序列化,提高速度,并使序列化后的字节流更短、传输速度更快,弥补一些因解耦合而降低的全流程处理效率。存储采用分库分表分区方式存储大量交易流水数据,提高访问性能;采用murmurhash算法计算流水号要对应的存储库表,运算性能更高且碰撞率更低,可以使流水数据更加均匀的分布到多张表中,更加有效的利用数据库资源。同时,本方法提供了两次流水入库失败情况的容错机制,保证交易流水不会丢失。
5.为实现以上目的,本发明所采用的技术方案包括:
6.一种交易流水的处理方法,其特征在于,包括:
7.业务系统发送流水对象至消息队列,流水系统启动socket端口接受所述流水对象;所述消息队列是kafka消息队列接口集成hessian,将所述流水对象序列化和反序列化;
8.判断所述流水对象应该存入的库表,连接数据库将所述流水对象存储至对应的库表中;所述存储方式包括分库分表分区的存储方式;
9.判断流水对象是否存储至库表,当所述流水对象存储至库表时,发送成功结束交易流水处理;
10.当所述流水对象未存储至库表时,将该条流水对象标记为未入库流水对象,将所述未入库流水对象写入未入库流水对象文件并存储至目录;
11.扫描所述流水对象,当未入库流水对象文件符合命名规则并且小于等于预设发送次数时,读取所述未入库流水对象文件,连接流水系统并发送所述未入库流水对象文件;
12.当发送成功时,删除所述未入库流水对象文件;
13.当发送失败时,修改所述未入库流水对象文件的名称,并标记发送次数。
14.进一步地,所述分库分表分区的存储方式包括,以月为单位将所述流水对象分别存储至分区中,通过脚本检查数据库所有分区,并在检查到分区数量小于三个时增加分区数量,以天为单位重复执行所述脚本;
15.流水系统根据每个所述流水对象的流水号,使用哈希算法计算出所述流水号对应的哈希值,根据哈希值计算所述流水对象的区间号,将所述区间号作为所述流水对象的表编号;
16.根据所述表编号得到对应的数据库标号,根据所述数据库标号与对应数据库连接,将所述流水对象存储至数据库。
17.进一步地,所述哈希算法是非加密哈希算法。
18.进一步地,所述流水系统启动socket端口接受所述流水对象包括启动线程异步处理所述流水对象;所述线程每隔一定时间间隔扫描所述流水对象。
19.进一步地,所述流水对象包括流水号、交易日期、业务状态和交易金额
20.进一步地,所述预设发送次数为3。
21.进一步地,所述数据库包括oracle数据库和mysql数据库。
22.本发明还涉及一种交易流水的处理系统,其特征在于,包括:
23.获取模块,用于获取流水对象;
24.判断模块,用于所述流水对象是否成功存储至对应库表以及所述流水对象的发送次数;
25.处理模块,用于计算流水对象应该存入的库表;
26.存储模块,用于存储流水对象。
27.本发明还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
28.本发明还涉及一种电子设备,其特征在于,包括处理器和存储器;
29.所述存储器,用于存储流水对象;
30.所述处理器,用于执行存储器中存储的计算机程序,执行上述的方法。
31.本发明的有益效果为:
32.采用本发明所述交易流水的处理方法及系统,通过使用消息队列将业务系统与流水处理系统解耦合,提高业务系统的响应速度并可以减小交易峰值期间流水系统的压力;使用hessian做流水对象的序列化和反序列化,提高速度,并使序列化后的字节流更短、传输速度更快,弥补一些因解耦合而降低的全流程处理效率。存储采用分库分表分区方式存储大量交易流水数据,提高访问性能;采用murmurhash算法计算流水号要对应的存储库表,其运算性能更高且碰撞率更低,可以使流水数据更加均匀的分布到多张表中,更加有效的利用数据库资源。同时,本方法提供了两次流水入库失败情况的容错机制,保证交易流水不会丢失。
附图说明
33.图1为本发明交易流水的处理方法流程示意图。
34.图2为本发明交易流水的处理系统结构示意图。
具体实施方式
35.为了更清楚的理解本发明的内容,将结合附图和实施例详细说明。
36.本发明第一方面涉及一种步骤流程如图1所示的交易流水的处理方法,包括:
37.业务系统发送流水对象至消息队列,流水系统启动socket端口接受所述流水对象;所述消息队列是kafka消息队列接口集成hessian,将所述流水对象序列化和反序列化;
38.使用kafka作为消息中间件,业务系统向kafka发送消息,流水系统监听并接收消息。这样流水的处理过程不再影响业务系统,可以提高业务系统的响应速度和系统稳定性,同时起到缓冲作用,减小交易峰值期间流水系统的压力。
39.具体的,kafka作为消息中间件可以横向扩展,但kafka都是以字节型数组接收和发送消息,其他数据类型需要指定序列化方式。业务系统产生的流水数据是一个对象,包括流水号、交易日期、业务状态、交易金额字段,无法使用kafka原生支持的序列化方式,因此本系统采用自定义的序列化方式来序列化和反序列化流水对象。本发明通过实现kafka提供的接口并集成hessian来将流水对象的序列化和反序列化。hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了rmi的功能,相比webservice,hessian更简单、快捷,具有与平台无关等特性。序列化是将流水对象转换为字节序列的过程;反序列化是指把字节序列恢复为流水对象的过程。对比java原生的序列化,其序列化和反序列化速度更快,序列化后的字节流更短,基于序列化字节流的模式进行数据传递,显著改善数据传递效率,进而可以弥补一些因增加消息中间件而降低的全流程处理效率。
40.判断所述流水对象应该存入的库表,连接数据库将所述流水对象存储至对应的库表中;所述存储方式包括分库分表分区的存储方式;
41.具体的,分库分表分区的存储方式包括,将每张表按月分区,每个月的数据在一个分区中,查询和插入时根据分区操作,并实现分区的自动扩充,通过脚本检查数据库现有所有表分区,判断当所述分区数量小于三个时,新增六个分区,并每天定时执行所述脚本;当一张表随着时间和业务的发展,库里表的数据量会越来越大。数据操作也随之会越来越大。一台物理机的资源有限,最终能承载的数据量、数据的处理能力都会受到限制。这时候就会使用分库分表来承接超大规模的表。分库分表分区并不冲突,可以结合使用。
42.判断流水对象是否存储至库表,当所述流水对象存储至库表时,发送成功结束交易流水处理;
43.流水系统根据每个所述流水对象的流水号,使用哈希算法计算出所述流水号对应的哈希值,根据哈希值计算所述流水对象的区间号,将所述区间号作为所述流水对象的表编号;根据所述表编号得到对应的数据库标号,根据所述数据库标号与对应数据库连接,将所述流水对象存储至数据库。
44.具体的,可设计将流水对象存入6个数据库共1024张表中,每张表末尾6位是数字,代表流水表编号,剩余位补0,例如第一张和最后一张流水表表名分别为xxx_000001,xxx_001024;数据库数量和表数量可以在配置文件中根据情况进行设置,测试环境因为数据量小可以只配置2个数据库以节省资源;因为流水对象结构相同,所以使所有流水对象尽量均匀分布在这1024张表中,这样每个库的资源占用会比较均匀,流水系统根据每个流水对象中全局唯一的流水号,使用murmurhash算法计算出此流水号对应的哈希值,murmurhash算法是一种非加密哈希算法,相比传统哈希算法,其运算性能更高且碰撞率更低;计算得到哈
希值后,将2的32次方的哈希空间平均分成表个数大小,根据哈希值计算其落到的区间号作为表编号,表编号与数据库编号的映射关系在配置文件中,根据表编号可以得到此表对应的数据库编号,再根据此数据库编号获取对应的数据库连接,将流水入库。
45.当所述流水对象未存储至库表时,将该条流水对象标记为未入库流水对象,将所述未入库流水对象写入未入库流水对象文件并存储至目录;
46.扫描所述流水对象,当未入库流水对象文件符合命名规则并且小于等于预设发送次数时,读取所述未入库流水对象文件,连接流水系统并发送所述未入库流水对象文件;
47.当发送成功时,删除所述未入库流水对象文件;
48.当发送失败时,修改所述未入库流水对象文件的名称,并标记发送次数。
49.具体的,当业务系统将流水对象发送到kafka失败时,会将此流水对象写入文件并存到指定目录下。另外一个线程异步扫描指定路径下的文件,当文件存在时,读取文件,连接流水系统,连接成功后发送流水文件,如果流水系统返回成功,删除文件;如果返回失败,修改文件名,标记发送次数,当发送次数达到3次以后不再继续发送。
50.本发明另一方面还涉及一种交易流水的处理系统,其结构如图2所示,包括:
51.获取模块,用于获取流水对象;
52.判断模块,用于所述流水对象是否成功存储至对应库表以及所述流水对象的发送次数;
53.处理模块,用于计算流水对象应该存入的库表;
54.存储模块,用于存储流水对象。。
55.通过使用该系统,能够执行上述的运算处理方法并实现对应的技术效果。
56.本发明的实施例还提供能够实现上述实施例中的交易流水的处理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的交易流水的处理方法的全部步骤。
57.本发明的实施例还提供一种用于执行上述方法的电子设备,作为该方法的实现装置,所述电子设备至少具备有处理器和存储器,特别是该存储器上存储有执行方法所需的数据和相关的计算机程序,例如流水对象等,并通过由处理器调用存储器中的数据、程序执行实现方法的全部步骤,并获得对应的技术效果。
58.优选的,该电子设备可以包含有总线架构,总线可以包括任意数量的互联的总线和桥,总线将包括由一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他系统通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。
59.额外的,所述电子设备还可以进一步包括通信模块、输入单元、音频处理器、显示器、电源等部件。其所采用的处理器(或称为控制器、操作控件)可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器接收输入并控制电子设备的各个部件的操作;存储器可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种,可储存上述有关的数据信息,此外还可存储执行有关信息的程序,并且处理
器可执行该存储器存储的该程序,以实现信息存储或处理等;输入单元用于向处理器提供输入,例如可以为按键或触摸输入装置;电源用于向电子设备提供电力;显示器用于进行图像和文字等显示对象的显示,例如可为lcd显示器。通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到中央处理器,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。
60.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
61.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
62.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
63.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
64.以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
完整全部详细技术资料下载
当前第1页 1  2 
相关技术
  • 一种磁存储器及数据选通销毁方...
  • 成像几何关系标定方法、装置、...
  • 一种针对商品评价的处理方法及...
  • 一种轨道交通软件远程维护方法...
  • 一种互联网开源软件数据动态索...
  • 阿尔茨海默病风险评估模型建立...
  • 一种电力交易机构运营合规风险...
  • 多媒体播放方法、投屏终端、服...
  • 加速存储器存取的电子装置及方...
  • 一种评价不同水动力区沉水植物...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

代做工资流水公司银川日常消费流水多少钱上饶查询公司流水江门流水代做上海房贷工资流水 多少钱大庆查房贷银行流水常州收入证明代办长沙工资流水办理泰州做背调流水沈阳企业对公流水多少钱商丘日常消费流水公司上海企业流水打印代开金华个人流水打印咸阳银行流水修改代做绵阳制作银行流水账单芜湖查消费贷流水许昌代办银行流水电子版济宁开工作收入证明株洲开入职银行流水舟山流水邢台做车贷银行流水鞍山背调银行流水图片许昌流水多少钱漳州办房贷流水沧州个人工资流水 代做德阳代做签证银行流水湛江薪资流水费用保定对公账户流水代办郑州企业银行流水办理新乡工资证明代开开封薪资银行流水报价香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化