CN116071075A - 交易完整性核对方法、装置、设备、介质和程序产品 - Google Patents
交易完整性核对方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN116071075A CN116071075A CN202310110621.4A CN202310110621A CN116071075A CN 116071075 A CN116071075 A CN 116071075A CN 202310110621 A CN202310110621 A CN 202310110621A CN 116071075 A CN116071075 A CN 116071075A
- Authority
- CN
- China
- Prior art keywords
- transaction
- check
- log data
- check list
- plaintext
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种交易完整性核对方法,可以应用于金融领域。该交易完整性核对方法包括:捕获微服务应用端的非明文日志数据;将所述非明文日志数据转化为明文日志数据;将所述明文日志数据转化为第一核对表,所述第一核对表包括微服务应用端的交易信息;获取第二核对表,所述第二核对表包括渠道应用端的交易信息;以及基于所述第一核对表和所述第二核对表执行交易完整性核对。本公开还提供了一种交易完整性核对装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及金融领域,具体地涉及一种交易核对方法、装置、设备、介质和程序产品。
背景技术
微服务是一种云原生架构的方法,其中单个业务交易可以由多个不同的松散耦合且可独立部署的应用程序或服务组成。一个完整的业务交易是通过多个不同的微服务应用之间相互调用协同完成的。网络问题或者任意一个微服务应用内部出现故障,都可能导致整个业务交易失败。
为保障业务交易的完整性,微服务应用之间通过分布式事务解决交易完整性问题。为了验证每个业务交易的分布式事务完整性每个微服务应用在执行交易时会登记每笔交易的日志,然后每日夜间运行批量程序把交易日志表导出到文件,然后通过FTP把文件发送到渠道应用,由渠道应用执行核对程序。
但该方法维护成本较高,且时效性偏低。
发明内容
鉴于上述问题,本公开提供了提高核对实现性并降低维护成本的交易完整性核对方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种交易完整性核对方法,包括:捕获微服务应用端的非明文日志数据;将所述非明文日志数据转化为明文日志数据;将所述明文日志数据转化为第一核对表,所述第一核对表包括微服务应用端的交易信息;获取第二核对表,所述第二核对表包括渠道应用端的交易信息;以及基于所述第一核对表和所述第二核对表执行交易完整性核对。
根据本公开的实施例,其中,所述将所述明文日志数据转化为第一核对表,包括:按照预设的处理逻辑剔除所述明文日志数据中非交易的字段,得到第一核对表;以及将所述第一核对表保存至本地数据库中。
根据本公开的实施例,其中,所述将所述第一核对表保存至本地数据库中,包括:基于消息中间件将所述第一核对表存放入本地数据库中。
根据本公开的实施例,其中,所述第一核对表和所述第二核对表是以Key-Value的形式存储的,所述Key至少包括渠道事件编号,所述渠道事件编号是全局唯一的,所述Value至少包括交易类型,所述基于所述第一核对表和所述第二核对表执行交易完整性核对包括:基于所述第一核对表中渠道事件编号,判断在所述第二核对表中是否查询到对应的渠道事件编号;在成功查询到渠道事件编号的情况下,基于所述第一核对表中交易类型,判断在所述第二核对表中是否查询到交易类型;以及在成功查询到所述交易类型的情况下,判定为分布式事务完整,核对成功。
根据本公开的实施例,其中,在所述基于所述第一核对表中交易类型,判断在所述第二核对表中是否查询到交易类型后,还包括:在未能成功查询到所述交易类型的情况下,判定为分布式事务不完整,生成差异文件。
根据本公开的实施例,其中,在所述基于所述第一核对表中渠道事件编号,判断在所述第二核对表中是否查询到对应的渠道事件编号后,还包括:在未能成功查询到所述事件编号的情况下,判定为分布式事务不完整,生成差异文件。
根据本公开的实施例,其中,在所述基于所述第一核对表和所述第二核对表执行交易完整性核对后,还包括:基于所述差异文件调用自动补账接口,所述自动补账接口用于在微服务应用侧实现数据的修复。
本公开的第二个方面,提供了一种交易完整性核对装置,包括:日志捕获模块,用于捕获微服务应用端的非明文日志数据;日志转化模块,用于将所述非明文日志数据转化为明文日志数据;第一核对表转化模块,用于将所述明文日志数据转化为第一核对表,所述第一核对表包括微服务应用端的交易信息;第二核对表获取模块,用于获取第二核对表,所述第二核对表包括渠道应用端的交易信息;以及交易完整性核对模块,用于基于所述第一核对表和所述第二核对表执行交易完整性核对。
根据本公开的实施例,其中,所述日志转化模块,还用于按照预设的处理逻辑剔除所述明文日志数据中非交易的字段,得到第一核对表;以及将所述第一核对表保存至本地数据库中。
根据本公开的实施例,其中,所述日志转化模块,还用于基于消息中间件将所述第一核对表存放入本地数据库中。
根据本公开的实施例,其中,所述第一核对表和所述第二核对表是以Key-Value的形式存储的,所述Key至少包括渠道事件编号,所述渠道事件编号是全局唯一的,所述Value至少包括交易类型,所述交易完整性核对模块,还用于基于所述第一核对表中渠道事件编号,判断在所述第二核对表中是否查询到对应的渠道事件编号;在成功查询到渠道事件编号的情况下,基于所述第一核对表中交易类型,判断在所述第二核对表中是否查询到交易类型;以及在成功查询到所述交易类型的情况下,判定为分布式事务完整,核对成功。
根据本公开的实施例,其中,所述交易完整性核对模块,还用于在未能成功查询到所述交易类型的情况下,判定为分布式事务不完整,生成差异文件。
根据本公开的实施例,其中,所述交易完整性核对模块,还用于在未能成功查询到所述事件编号的情况下,判定为分布式事务不完整,生成差异文件。
根据本公开的实施例,其中,所述装置还包括修复模块,用于基于所述差异文件调用自动补账接口,所述自动补账接口用于在微服务应用侧实现数据的修复。
本公开的第三个方面,提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述交易完整性核对方法。
本公开的第四个方面,还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述交易完整性核对方法。
本公开的第五个方面,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述交易完整性核对方法。
在本公开的实施例中,与现有技术相比,具有以下优点:1.直接获取微服务应用中的非明文数据再进行转化,而不是获取微服务应用侧转化好的,避免了在微服务应用侧部署明文转化逻辑,仅需维护本地的明文转化逻辑,提高了可维护性。2.将明文日志转化逻辑和核对表核对逻辑部署在服务器端,无需各个微服务应用配合代码修改,也无需部署客户端,就能够实现各个服务器的日志核对。综上,提高了数据获取与处理的及时性,并且提高了程序代码的可维护性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1A示意性示出了根据本公开实施例的交易完整性核对方法的应用场景图;
图1B示意性示出了根据本公开实施例的一种交易完整性核对方法的系统图;
图2示意性示出了根据本公开实施例的交易完整性核对方法的流程图;
图3示意性示出了根据本公开实施例的核对表转化方法的流程图;
图4A示意性示出了根据本公开实施例的交易完整性核对方法的流程图;
图4B示意性示出了根据本公开实施例的交易完整性核对方法的流程图;
图4C示意性示出了根据本公开实施例的交易完整性核对方法的流程图;
图5示意性示出了根据本公开实施例的交易完整性核对方法的流程图;
图6示意性示出了根据版本公开实施例的交易完整性核对方法的系统图;
图7示意性示出了根据本公开实施例的交易完整性核对装置的结构框图;
图8示意性示出了根据本公开实施例的适于实现交易完整性核对方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
需要说明的是,本公开的实施例中的交易完整性核对方法和装置可用于金融领域在交易完整性核对中,也可用于除金融领域之外的任意领域,本公开需要说明的是,本公开的实施例中的交易完整性核对方法和装置可用于金融领域在交易完整性核对中,也可用于除金融领域之外的任意领域,本公开的实施例中的交易完整性核对方法和装置的应用领域不做限定。方法和装置的应用领域不做限定。
本公开的实施例提供了一种交易完整性核对方法,包括:捕获微服务应用端的非明文日志数据;将所述非明文日志数据转化为明文日志数据;将所述明文日志数据转化为第一核对表,所述第一核对表包括微服务应用端的交易信息;获取第二核对表,所述第二核对表包括渠道应用端的交易信息;以及基于所述第一核对表和所述第二核对表执行交易完整性核对。
在本公开的实施例中,与现有技术相比,具有以下优点:1.直接获取微服务应用中的非明文数据再进行转化,而不是获取微服务应用侧转化好的,避免了在微服务应用侧部署明文转化逻辑,仅需维护本地的明文转化逻辑,提高了可维护性。2.将明文日志转化逻辑和核对表核对逻辑部署在服务器端,无需各个微服务应用配合代码修改,也无需部署客户端,就能够实现各个服务器的日志核对。综上,提高了数据获取与处理的及时性,并且提高了程序代码的可维护性。
图1A示意性示出了根据本公开实施例的交易完整性核对方法的应用场景图。
如图1A所示,根据该实施例的应用场景100可以包括分布式节点服务器101、102、103、网络104以及核对服务器105。网络104用以在分布式节点服务器101、102、103和核对服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用分布式节点服务器101、102、103通过网络104与核对服务器105交互,以接收或发送消息等。分布式节点服务器101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
分布式节点服务器101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
核对服务器105可以是提供各种服务的服务器,例如对用户利用分布式节点服务器101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给分布式节点服务器。
需要说明的是,本公开实施例所提供的交易完整性核对方法一般可以由核对服务器105执行。相应地,本公开实施例所提供的交易完整性核对装置一般可以设置于核对服务器105中。本公开实施例所提供的交易完整性核对方法也可以由不同于核对服务器105且能够与分布式节点服务器101、102、103和/或核对服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的交易完整性核对装置也可以设置于不同于核对服务器105且能够与分布式节点服务器101、102、103和/或核对服务器105通信的服务器或服务器集群中。
应该理解,图1中的分布式节点服务器、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的分布式节点服务器、网络和服务器。
以下将基于图1A描述的场景,通过图1B~图6对公开实施例的交易完整性核对方法进行详细描述。
图1B示意性示出了根据本公开实施例的一种交易完整性核对方法的系统图。
如图1B所示,其中包括两类应用,即微服务应用和渠道应用。
对于微服务应用,该应用中主要包括两个逻辑,即交易逻辑和核对文件生成逻辑,例如,在应用A、应用B和应用C中,在产生交易之后,在应用A、应用B和应用C中会生成应用日志,该应用日志可以是明文直接可读的应用日志,或者,该应用日志也可以是非明文不可读的应用日志。在应用日志生成之后,应用A、应用B和应用C中各自包含核对文件生成逻辑的相关程序,各自对应用日志A、应用日志B和应用日志C进行转化,转化成为A文件(核对文件A)、B文件(核对文件B)以及C文件(核对文件C)。这些文件通过FTP协议(File TransferProtocol,文件传输协议)传输到渠道应用端。
对于渠道应用,该应用中主要包括三个逻辑,即交易逻辑、核对文件生成逻辑以及核对逻辑。渠道应用的交易逻辑与微服务应用的交易逻辑对应,在渠道应用产生交易逻辑之后,会生成渠道日志,该渠道日志可以是明文直接可读的应用日志,或者,该应用日志也可以是非明文不可读的应用日志。在应用日志生成之后,通过核对文件生成逻辑对渠道日志进行转化,得到渠道文件,该渠道文件可以存储在预设的路径之中。在渠道应用接收到来自微应用的A文件、B文件以及C文件后,与本端存储的渠道文件进行交易完整性核对,在出现差异性的情况下,生成差异文件以指导不同应用进行补账纠错。
在图1B中的系统所形成的交易完整性核对方案中,仍然存在以下几处缺点:
1.每个微服务应用都要开发批量程序生成日志文件,并且要实现ftp发送功能,开发维护成本比较高。
2.由于每个应用夜间生成的日志文件时间不一样,渠道应用是第二天才能获取所有的应用日志文件,导致业务交易的分布式事务数据核对的时效性低,需要等到第二天才能发现问题。
3.各个应用需要各自开发一套补帐程序,用于收到核对差异的文件后进行补帐处理,补帐程序的开发和运维成本比较高。
综上,研发人员在图1B的基础上,进一步进行改进,以克服上述缺点。
图2示意性示出了根据本公开实施例的交易完整性核对方法的流程图。
如图2所示,该实施例的交易完整性核对方法包括操作S210~操作S250,该交易完整性核对方法可以由核对服务器105执行。
在操作S210中,捕获微服务应用端的非明文日志数据。
在微服务应用端,交易会产生应用日志,该应用日志为非明文的日志,例如是binlog的二进制日志数据,核对服务器105持续捕获该非明文的日志,该捕获的操作是实时的。可以理解的是,该非明文日志数据是不能直接可读的,需要进一步转换成直接可读的数据。
在操作S220中,将所述非明文日志数据转化为明文日志数据。
在操作S230中,将所述明文日志数据转化为第一核对表,所述第一核对表包括微服务应用端的交易信息。
将非明文日志数据转化为明文日志数据,在提取出明文日志数据中有用的信息。例如,将binlog二进制日志数据转码为明文数据。提取每个应用指定的日志表记录。
图3示意性示出了根据本公开实施例的核对表转化方法的流程图。
如图3所示,该实施例的核对表转化方法包括操作S310~操作S320。该操作S310~操作S320至少可以部分执行上述操作S230。
在操作S310中,按照预设的处理逻辑剔除所述明文日志数据中非交易的字段,得到第一核对表。
在操作S320中,将所述第一核对表保存至本地数据库中。
具体的,预设的处理逻辑是指采用例如关键词匹配的手段,对明文日志数据中与交易无关的字段进行脱敏或者过滤。将脱敏或者过滤后的数据按照预先设定好的格式进行保存。例如,预先设定好的格式包括JSON、XML等常用的数据格式。
根据本公开的实施例,其中,所述将所述第一核对表保存至本地数据库中,包括:基于消息中间件将所述第一核对表存放入本地数据库中。
当然,由于操作是实时的,采用消息中间件数据的生成与消费异步执行,消息中间件可以降低不同模块之间的耦合度,可以在交易高峰期间进行削峰操作。其中,消息中间件可以是例如Active、RabbitMQ以及Kafka等,在此不做限定。
根据本公开的实施例,其中,所述第一核对表和所述第二核对表是以Key-Value的形式存储的,所述Key至少包括渠道事件编号,所述渠道事件编号是全局唯一的,所述Value至少包括交易类型。
捕获不同应用的事务日志表的记录,对记录里面的每个字段信息进行脱敏或过滤,然后把每个记录转换为JSON报文格式,JSON报文的格式固定为<Key,Value>,其中Key存放微服务应用名、渠道事件编号,Value存放记录修改前和修改后的字段数据、交易执行时间、交易类型,其中交易类型包含成功交易、失败交易两种类型,最后把JSON报文发送到消息中间件Kafka的topic,每个应用的每张日志表对应一个topic。进而,从消息中间件Kafka里面读取每个应用的每张日志表的topic数据,把每张表的日志数据存放到本地数据库的核对表中,每个topic对应一张核对表。
在操作S240中,获取第二核对表,所述第二核对表包括渠道应用端的交易信息。
在操作S250中,基于所述第一核对表和所述第二核对表执行交易完整性核对。
从本地数据库中读取渠道核对表的所有记录,每条记录代表每一个分布式事务,每个分布式事务的渠道事件编号是唯一的;通过渠道核对表的记录的渠道事件编号、交易类型,和各个应用的核对表的记录进行核对。
在本公开的实施例中,与现有技术相比,具有以下优点:1.直接获取微服务应用中的非明文数据再进行转化,而不是获取微服务应用侧转化好的,避免了在微服务应用侧部署明文转化逻辑,仅需维护本地的明文转化逻辑,提高了可维护性。2.将明文日志转化逻辑和核对表核对逻辑部署在服务器端,无需各个微服务应用配合代码修改,也无需部署客户端,就能够实现各个服务器的日志核对。综上,提高了数据获取与处理的及时性,并且提高了程序代码的可维护性。
图4A示意性示出了根据本公开实施例的交易完整性核对方法的流程图。
如图4A所示,该实施例的交易完整性核对方法包括操作S410~S430。该操作S410~操作S430至少可以部分执行上述操作S250。
在操作S410中,基于所述第一核对表中渠道事件编号,判断在所述第二核对表中是否查询到对应的渠道事件编号。
在操作S420中,在成功查询到渠道事件编号的情况下,基于所述第一核对表中交易类型,判断在所述第二核对表中是否查询到交易类型。
在操作S430中,在成功查询到所述交易类型的情况下,判定为分布式事务完整,核对成功。
若各个应用的核对表全部能找到对应的渠道事件编号,并且各个应用的交易类型和渠道应用的交易类型相同,则表示该渠道事件编号的分布式事务是完整的,核对完毕并且删除各个核对表的该渠道事件编号对应的记录。
图4B示意性示出了根据本公开实施例的交易完整性核对方法的流程图。
如图4B所示,该实施例的交易完整性核对方法除了上述操作S410~S430,还包括操作S440。该操作S410~操作S440至少可以部分执行上述操作S250。
在操作S440中,在未能成功查询到所述交易类型的情况下,判定为分布式事务不完整,生成差异文件。
若某个应用的核对表能找到对应的渠道事件编号,但某应用的交易类型和渠道事件编号的记录的交易类型不一致,则表示该分布式事务不完整,需要把该应用名字、应用日志信息、渠道事件编号对应的渠道日志信息登记到差异文件。
图4C示意性示出了根据本公开实施例的交易完整性核对方法的流程图。
如图4C所示,该实施例的交易完整性核对方法除了上述操作S410~S440,还包括操作S450。该操作S410~操作S450至少可以部分执行上述操作S250。
在操作S450中,在未能成功查询到所述事件编号的情况下,判定为分布式事务不完整,生成差异文件。
若某个应用的核对表找不到对应的渠道事件编号,则表示该分布式事务不完整,需要把该应用名字、渠道事件编号对应的渠道日志信息登记到差异文件。
把每个交易的分布式事务核对结果反馈给业务人员;核对过程中如果出现账务不平,则由业务人员通知微服务应用进行补帐处理,或者,由自动化程序生成相应的指令,指导微服务应用端的补账程序进行补账处理。
图5示意性示出了根据本公开实施例的交易完整性核对方法的流程图。
如图5所示,该实施例的交易完整性核对方法除了上述操作S210~操作S250,还包括操作S510。
在操作S510中,基于所述差异文件调用自动补账接口,所述自动补账接口用于在微服务应用侧实现数据的修复。
通过直接调用应用的交易接口完成应用的自动补帐。若是某个应用的核对表找不到对应的渠道事件编号的场景,表示该应用未执行或执行该渠道事件编号的分布式事务不成功,则重新调用该应用的交易接口,重新执行该渠道事件编号对应的交易,执行成功则完成数据修复,执行失败则进行异常报警;若是某个应用的核对表能找到对应的渠道事件编号,但某应用的交易类型和渠道事件编号的记录的交易类型不一致的场景,则重新调用该应用的交易接口,重新执行该渠道事件编号对应的交易类型,执行成功则完成数据修复。
根据本公开的实施例,其中,所述方法还包括:根据差异文件的应用名字进行实时异常报警,或者,若交易修复失败,则进行异常报警。
图6示意性示出了根据版本公开实施例的交易完整性核对方法的系统图。
如图6所示,与图1B不同的是,在微服务应用端和渠道应用端,仅配置了日志生成的逻辑。捕获微服务应用端和渠道应用端生成的应用日志(非明文数据),并将这些应用日志转化为明文数据,然后把各个应用数据库日志中分布式事务的交易记录提取和发送到消息中间件的不同消息队列,最后由核对装置完成交易日志的核对及数据自动修复。
可以理解的是,该方法对各个微服务应用透明、无代码入侵、不对源端数据库的使用存在影响、各个应用无需开发文件导出和核对程序、实时完成数据库日志核对、自动完成数据修复。
基于上述交易完整性核对方法,本公开还提供了一种交易完整性核对装置。以下将结合图7对该装置进行详细描述。
图7示意性示出了根据本公开实施例的交易完整性核对装置的结构框图。
如图7所示,该实施例的完整性核对装置700包括日志捕获模块710、日志转化模块720、第一核对表转化模块730、第二核对表获取模块740和交易完整性核对模块750。
日志捕获模块710用于捕获微服务应用端的非明文日志数据。在一实施例中,日志捕获模块710可以用于执行前文描述的操作S210,在此不再赘述。
日志转化模块720用于将所述非明文日志数据转化为明文日志数据。在一实施例中,日志转化模块720可以用于执行前文描述的操作S220,在此不再赘述。
第一核对表转化模块730用于将所述明文日志数据转化为第一核对表,所述第一核对表包括微服务应用端的交易信息。在一实施例中,第一核对表转化模块730可以用于执行前文描述的操作S230,在此不再赘述。
第二核对表获取模块740用于获取第二核对表,所述第二核对表包括渠道应用端的交易信息,所述第二核对表与所述第一核对表是对应关系。在一实施例中,第二核对表获取模块740可以用于执行前文描述的操作S240,在此不再赘述。
交易完整性核对模块750用于基于所述第一核对表和所述第二核对表执行交易完整性核对。在一实施例中,交易完整性核对模块750可以用于执行前文描述的操作S250,在此不再赘述。
根据本公开的实施例,其中,所述日志转化模块,还用于按照预设的处理逻辑剔除所述明文日志数据中非交易的字段,得到第一核对表;以及将所述第一核对表保存至本地数据库中。
根据本公开的实施例,其中,所述日志转化模块,还用于基于消息中间件将所述第一核对表存放入本地数据库中。
根据本公开的实施例,其中,所述第一核对表和所述第二核对表是以Key-Value的形式存储的,所述Key至少包括渠道事件编号,所述渠道事件编号是全局唯一的,所述Value至少包括交易类型,所述交易完整性核对模块,还用于基于所述第一核对表中渠道事件编号,判断在所述第二核对表中是否查询到对应的渠道事件编号;在成功查询到渠道事件编号的情况下,基于所述第一核对表中交易类型,判断在所述第二核对表中是否查询到交易类型;以及在成功查询到所述交易类型的情况下,判定为分布式事务完整,核对成功。
根据本公开的实施例,其中,所述交易完整性核对模块,还用于在未能成功查询到所述交易类型的情况下,判定为分布式事务不完整,生成差异文件。
根据本公开的实施例,其中,所述交易完整性核对模块,还用于在未能成功查询到所述事件编号的情况下,判定为分布式事务不完整,生成差异文件。
根据本公开的实施例,其中,所述装置还包括修复模块,用于基于所述差异文件调用自动补账接口,所述自动补账接口用于在微服务应用侧实现数据的修复。
在本公开的实施例中,与现有技术相比,具有以下优点:1.直接获取微服务应用中的非明文数据再进行转化,而不是获取微服务应用侧转化好的,避免了在微服务应用侧部署明文转化逻辑,仅需维护本地的明文转化逻辑,提高了可维护性。2.将明文日志转化逻辑和核对表核对逻辑部署在服务器端,无需各个微服务应用配合代码修改,也无需部署客户端,就能够实现各个服务器的日志核对。综上,提高了数据获取与处理的及时性,并且提高了程序代码的可维护性。
根据本公开的实施例,日志捕获模块710、日志转化模块720、第一核对表转化模块730、第二核对表获取模块740和交易完整性核对模块750中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,日志捕获模块710、日志转化模块720、第一核对表转化模块730、第二核对表获取模块740和交易完整性核对模块750中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,日志捕获模块710、日志转化模块720、第一核对表转化模块730、第二核对表获取模块740和交易完整性核对模块750中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现交易完整性核对方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种交易完整性核对方法,包括:
捕获微服务应用端的非明文日志数据;
将所述非明文日志数据转化为明文日志数据;
将所述明文日志数据转化为第一核对表,所述第一核对表包括微服务应用端的交易信息;
获取第二核对表,所述第二核对表包括渠道应用端的交易信息;以及
基于所述第一核对表和所述第二核对表执行交易完整性核对。
2.根据权利要求1所述的方法,其中,所述将所述明文日志数据转化为第一核对表,包括:
按照预设的处理逻辑剔除所述明文日志数据中非交易的字段,得到第一核对表;以及
将所述第一核对表保存至本地数据库中。
3.根据权利要求2所述的方法,其中,所述将所述第一核对表保存至本地数据库中,包括:
基于消息中间件将所述第一核对表存放入本地数据库中。
4.根据权利要求1~3任一项所述的方法,其中,所述第一核对表和所述第二核对表是以Key-Value的形式存储的,所述Key至少包括渠道事件编号,所述渠道事件编号是全局唯一的,所述Value至少包括交易类型,
所述基于所述第一核对表和所述第二核对表执行交易完整性核对包括:
基于所述第一核对表中渠道事件编号,判断在所述第二核对表中是否查询到对应的渠道事件编号;
在成功查询到渠道事件编号的情况下,基于所述第一核对表中交易类型,判断在所述第二核对表中是否查询到交易类型;以及
在成功查询到所述交易类型的情况下,判定为分布式事务完整,核对成功。
5.根据权利要求4所述的方法,其中,在所述基于所述第一核对表中交易类型,判断在所述第二核对表中是否查询到交易类型后,还包括:
在未能成功查询到所述交易类型的情况下,判定为分布式事务不完整,生成差异文件。
6.根据权利要求4所述的方法,其中,在所述基于所述第一核对表中渠道事件编号,判断在所述第二核对表中是否查询到对应的渠道事件编号后,还包括:
在未能成功查询到所述事件编号的情况下,判定为分布式事务不完整,生成差异文件。
7.根据权利要求5或6所述的方法,其中,在所述基于所述第一核对表和所述第二核对表执行交易完整性核对后,还包括:
基于所述差异文件调用自动补账接口,所述自动补账接口用于在微服务应用侧实现数据的修复。
8.一种交易完整性核对装置,包括:
日志捕获模块,用于捕获微服务应用端的非明文日志数据;
日志转化模块,用于将所述非明文日志数据转化为明文日志数据;
第一核对表转化模块,用于将所述明文日志数据转化为第一核对表,所述第一核对表包括微服务应用端的交易信息;
第二核对表获取模块,用于获取第二核对表,所述第二核对表包括渠道应用端的交易信息;以及
交易完整性核对模块,用于基于所述第一核对表和所述第二核对表执行交易完整性核对。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310110621.4A CN116071075A (zh) | 2023-02-03 | 2023-02-03 | 交易完整性核对方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310110621.4A CN116071075A (zh) | 2023-02-03 | 2023-02-03 | 交易完整性核对方法、装置、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116071075A true CN116071075A (zh) | 2023-05-05 |
Family
ID=86169607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310110621.4A Pending CN116071075A (zh) | 2023-02-03 | 2023-02-03 | 交易完整性核对方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116071075A (zh) |
-
2023
- 2023-02-03 CN CN202310110621.4A patent/CN116071075A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8825798B1 (en) | Business event tracking system | |
CN112463729B (zh) | 数据文件的入库方法、装置、电子设备和介质 | |
CN112288577B (zh) | 分布式服务的交易处理方法、装置、电子设备和介质 | |
CN115357761A (zh) | 链路追踪方法、装置、电子设备及存储介质 | |
CN112445860B (zh) | 一种处理分布式事务的方法和装置 | |
CN110782359A (zh) | 保单复效方法、装置、计算机存储介质及电子设备 | |
CN116166390A (zh) | 一种业务处理方法、装置、电子设备和存储介质 | |
CN116071075A (zh) | 交易完整性核对方法、装置、设备、介质和程序产品 | |
US20220129332A1 (en) | Handling of Metadata for Microservices Processing | |
CN113111077A (zh) | 一致性的控制方法、装置、电子设备、介质和程序产品 | |
CN113918525A (zh) | 数据交换调度方法、系统、电子设备、介质及程序产品 | |
CN116012158A (zh) | 业务处理方法、装置、设备及存储介质 | |
CN116881736A (zh) | 信息匹配方法、装置、设备及存储介质 | |
CN114202046B (zh) | 基于sap系统生成二维码的方法、装置、设备及介质 | |
CN113761406B (zh) | 一种智能柜二维码短链生成方法、装置、介质及电子设备 | |
CN116975200A (zh) | 用于控制服务器工作状态的方法、装置、设备及介质 | |
CN116303620A (zh) | 基于轻型数据库的对账方法、系统、设备、介质及产品 | |
CN116414600A (zh) | 数据自动核对方法、装置、设备及存储介质 | |
CN117112063A (zh) | 系统日期处理方法、装置、电子设备及存储介质 | |
CN117472716A (zh) | 非入侵式应用日志采集方法、装置、设备及存储介质 | |
CN115082216A (zh) | 系统间的交互方法、装置、电子设备和介质 | |
CN114529382A (zh) | 一种对账数据处理方法和装置 | |
CN117193754A (zh) | 处理业务请求的方法、装置、电子设备和计算机可读介质 | |
CN118093698A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN116257375A (zh) | Kafka数据自动化流处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |