CN116881040A - 一种业务操作处理方法、装置、电子装置和存储介质 - Google Patents

一种业务操作处理方法、装置、电子装置和存储介质 Download PDF

Info

Publication number
CN116881040A
CN116881040A CN202311155637.3A CN202311155637A CN116881040A CN 116881040 A CN116881040 A CN 116881040A CN 202311155637 A CN202311155637 A CN 202311155637A CN 116881040 A CN116881040 A CN 116881040A
Authority
CN
China
Prior art keywords
service
operation request
core layer
tracking identifier
business
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
Application number
CN202311155637.3A
Other languages
English (en)
Inventor
唐永波
张志强
杨伟
莫笛
李向东
芦宇峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Xiaodian Technology Co ltd
Original Assignee
Hangzhou Xiaodian Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Xiaodian Technology Co ltd filed Critical Hangzhou Xiaodian Technology Co ltd
Priority to CN202311155637.3A priority Critical patent/CN116881040A/zh
Publication of CN116881040A publication Critical patent/CN116881040A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Abstract

本申请涉及一种业务操作处理方法、装置、电子装置和存储介质,其中,该方法包括:调用第一拦截器对业务操作请求进行拦截,生成业务操作请求对应的跟踪标识,并根据业务操作请求和跟踪标识生成业务操作记录;在对业务操作请求进行业务应用层的业务处理后,根据业务处理结果生成第一业务核心层操作请求;调用第二拦截器对第一业务核心层操作请求进行拦截,以将业务操作请求对应的跟踪标识写入第一业务核心层操作请求中,生成第二业务核心层操作请求;对第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录;根据跟踪标识,对业务操作记录和数据变更记录进行聚合。通过本申请,实现了异常原因的快速定位。

Description

一种业务操作处理方法、装置、电子装置和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种业务操作处理方法、装置、电子装置和存储介质。
背景技术
对于通用业务,比如小电的门店业务、充电宝业务等,该通用业务对应多个应用或多个服务,对通用业务进行业务操作时,通常涉及对多个应用或多个服务的操作,操作通常散落在不同的应用或服务中,当系统数据存在异常,如门店数据存在异常时,用户无法判断是哪个应用或服务进行了什么操作导致的门店数据异常,也无法判断门店数据存在异常时,影响了哪些数据,从而导致用户无法快速定位导致系统数据存在异常的原因。
发明内容
在本申请中提供了一种业务操作处理方法、装置、电子装置和存储介质,以解决现有技术中用户无法快速定位导致系统数据存在异常的原因的问题。
第一个方面,在本申请中提供了一种业务操作处理方法,所述方法包括:
调用第一拦截器对业务操作请求进行拦截,以判断所述业务操作请求中是否包含跟踪标识;在所述业务操作请求中未携带跟踪标识时,生成所述业务操作请求对应的跟踪标识,并根据所述业务操作请求和所述跟踪标识生成业务操作记录;所述业务操作记录包括所述跟踪标识;
在对所述业务操作请求进行业务应用层的业务处理后,根据业务处理结果生成第一业务核心层操作请求;调用第二拦截器对所述第一业务核心层操作请求进行拦截,以将所述业务操作请求对应的跟踪标识写入所述第一业务核心层操作请求中,生成第二业务核心层操作请求;
对所述第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录;所述数据变更记录包括所述跟踪标识;
根据所述跟踪标识,对所述业务操作记录和所述数据变更记录进行聚合。
在其中的一些实施例中,所述对所述第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录,包括:
调用所述第一拦截器对所述第二业务核心层操作请求进行拦截;
在所述第二业务核心层操作请求中携带所述跟踪标识时,获取所述跟踪标识;
根据业务核心层的业务处理结果和所述跟踪标识,生成所述数据变更记录。
在其中的一些实施例中,所述对所述第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录,包括:
调用所述第一拦截器对所述第二业务核心层操作请求进行拦截;
在所述第二业务核心层操作请求中未携带所述跟踪标识时,生成所述第二业务核心层操作请求对应的跟踪标识;
根据业务核心层的业务处理结果和所述第二业务核心层操作请求对应的跟踪标识,生成所述数据变更记录。
在其中的一些实施例中,所述调用第一拦截器对业务操作请求进行拦截包括:通过注解调用第一拦截器对业务操作请求进行拦截;所述调用所述第一拦截器对所述第二业务核心层操作请求进行拦截包括:通过注解调用所述第一拦截器对所述第二业务核心层操作请求进行拦截。
在其中的一些实施例中,所述调用第二拦截器对所述第一业务核心层操作请求进行拦截,包括:
通过远程过程调用协议调用第二拦截器对所述第一业务核心层操作请求进行拦截。
在其中的一些实施例中,在所述业务操作请求中未携带跟踪标识时,生成所述业务操作请求对应的跟踪标识,并根据所述业务操作请求和所述跟踪标识生成业务操作记录,包括:
将生成的所述业务操作请求对应的跟踪标识写入上下文中。
在其中的一些实施例中,所述方法还包括:
设置代理将所述业务操作请求对应的业务操作和业务核心层操作请求对应的数据变更操作放在同一个事务中执行。
第二个方面,在本申请中提供了一种业务操作处理装置,所述装置包括:
第一调用模块,用于调用第一拦截器对业务操作请求进行拦截,以判断所述业务操作请求中是否包含跟踪标识;在所述业务操作请求中未携带跟踪标识时,生成所述业务操作请求对应的跟踪标识,并根据所述业务操作请求和所述跟踪标识生成业务操作记录;所述业务操作记录包括所述跟踪标识;
第二调用模块,用于在对所述业务操作请求进行业务应用层的业务处理后,根据业务处理结果生成第一业务核心层操作请求;调用第二拦截器对所述第一业务核心层操作请求进行拦截,以将所述业务操作请求对应的跟踪标识写入所述第一业务核心层操作请求中,生成第二业务核心层操作请求;
处理模块,用于对所述第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录;所述数据变更记录包括所述跟踪标识;
聚合模块,用于根据所述跟踪标识,对所述业务操作记录和所述数据变更记录进行聚合。
第三个方面,在本申请中提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行第一个方面所述的业务操作处理方法。
第四个方面,在本申请中提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一个方面所述的业务操作处理方法的步骤。
与现有技术相比,在本申请中提供的一种业务操作处理方法、装置、电子装置和存储介质,通过第一拦截器对业务操作请求进行拦截,生成业务操作请求对应的跟踪标识,并根据业务操作请求和跟踪标识生成业务操作记录,第二拦截器对第一业务核心层操作请求进行拦截,以将业务操作请求对应的跟踪标识写入第一业务核心层操作请求中,生成第二业务核心层操作请求,对第二业务核心层操作请求进行业务核心层的业务处理后,生成包括跟踪标识的数据变更记录,从而使得业务操作记录和数据变更记录中均携带跟踪标识,在系统数据存在异常时,根据该异常数据查找相关联的跟踪标识,根据查找到的跟踪标识,获取与异常数据相关联的所有的业务操作记录和数据变更记录,从而实现异常原因的快速定位。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是执行本申请实施例的一种业务操作处理方法的终端的硬件结构框图;
图2是本申请实施例的一种业务操作处理方法的流程图;
图3是本申请实施例的一种业务操作处理系统的结构框图;
图4是本申请实施例的另一种业务操作处理方法的流程图;
图5是本申请实施例的另一种业务操作处理方法的流程图;
图6是本申请实施例的另一种业务操作处理系统的结构框图;
图7是本申请实施例的一种业务操作处理装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本申请中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是执行本申请实施例的一种业务操作处理方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的一种业务操作处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(RadioFrequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本申请中提供了一种业务操作处理方法,图2是本申请实施例的一种业务操作处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,调用第一拦截器对业务操作请求进行拦截,以判断业务操作请求中是否包含跟踪标识;在业务操作请求中未携带跟踪标识时,生成业务操作请求对应的跟踪标识,并根据业务操作请求和跟踪标识生成业务操作记录;业务操作记录包括跟踪标识。
具体地,调用OpLogSDK(操作日志软件开发工具包)的第一拦截器对业务操作请求进行拦截,以判断业务操作请求中是否包含跟踪标识;在业务操作请求中未携带跟踪标识时,OpLogSDK生成业务操作请求对应的跟踪标识,将该跟踪标识写入OpLogSDK的上下文类中,根据业务操作请求和跟踪标识生成业务操作记录,将业务操作记录存储至数据库中。OpLogSDK为开发的软件开发工具包,其提供了拦截器类、上下文类、注解、注解解析器以及传输装置。这里的第一拦截器可以为http拦截器,也可以为feign拦截器,在此不做具体限定。这里的跟踪标识可以为通用唯一识别码(UUID,Universally Unique Identifier)。
步骤S220,在对业务操作请求进行业务应用层的业务处理后,根据业务处理结果生成第一业务核心层操作请求;调用第二拦截器对第一业务核心层操作请求进行拦截,以将业务操作请求对应的跟踪标识写入第一业务核心层操作请求中,生成第二业务核心层操作请求。
具体地,业务系统采用三层结构,其包括业务应用层、业务核心层和存储层。业务应用层在对业务操作请求进行业务应用层的业务处理后,根据业务处理结果生成第一业务核心层操作请求,根据业务处理结果生成多个核心层操作请求,即一个业务操作可以对应多个应用或多个服务。调用OpLogSDK的第二拦截器对第一业务核心层操作请求进行拦截,以将业务操作请求对应的跟踪标识写入第一业务核心层操作请求中,生成第二业务核心层操作请求,即第二业务核心层操作请求的标头(header)中携带该跟踪标识。
步骤S230,对第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录;数据变更记录包括跟踪标识。
具体地,业务核心层对第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录并存储到数据库中,生成的数据变更记录包括跟踪标识。
步骤S240,根据跟踪标识,对业务操作记录和数据变更记录进行聚合。
具体地,根据跟踪标识,对数据库中的业务操作记录和数据变更记录进行聚合。响应于用户请求,根据跟踪标识,将聚合后的数据展示给用户。这里的用户请求可以是在系统数据存在异常时,携带异常数据的请求,根据该异常数据查找相关联的跟踪标识,根据查找到的跟踪标识,获取与异常数据相关联的所有的业务操作记录和数据变更记录,从而实现异常原因的快速定位。
在本实施例中,通过第一拦截器对业务操作请求进行拦截,生成业务操作请求对应的跟踪标识,并根据业务操作请求和跟踪标识生成业务操作记录,第二拦截器对第一业务核心层操作请求进行拦截,以将业务操作请求对应的跟踪标识写入第一业务核心层操作请求中,生成第二业务核心层操作请求,对第二业务核心层操作请求进行业务核心层的业务处理后,生成包括跟踪标识的数据变更记录,从而使得业务操作记录和数据变更记录中均携带跟踪标识,在系统数据存在异常时,根据该异常数据查找相关联的跟踪标识,根据查找到的跟踪标识,获取与异常数据相关联的所有的业务操作记录和数据变更记录,从而实现异常原因的快速定位。
在其中的一些实施例中,对第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录,包括:调用第一拦截器对第二业务核心层操作请求进行拦截;在第二业务核心层操作请求中携带跟踪标识时,获取跟踪标识;根据业务核心层的业务处理结果和跟踪标识,生成数据变更记录。
在其中的一些实施例中,对第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录,包括:调用第一拦截器对第二业务核心层操作请求进行拦截;在第二业务核心层操作请求中未携带跟踪标识时,生成第二业务核心层操作请求对应的跟踪标识;根据业务核心层的业务处理结果和第二业务核心层操作请求对应的跟踪标识,生成数据变更记录。
在其中的一些实施例中,调用第一拦截器对业务操作请求进行拦截包括:通过注解调用第一拦截器对业务操作请求进行拦截;调用第一拦截器对第二业务核心层操作请求进行拦截包括:通过注解调用第一拦截器对第二业务核心层操作请求进行拦截。
在其中的一些实施例中,调用第二拦截器对第一业务核心层操作请求进行拦截,包括:通过远程过程调用协议调用第二拦截器对第一业务核心层操作请求进行拦截。
在其中的一些实施例中,在业务操作请求中未携带跟踪标识时,生成业务操作请求对应的跟踪标识,并根据业务操作请求和跟踪标识生成业务操作记录,包括:将生成的业务操作请求对应的跟踪标识写入上下文中。
在其中的一些实施例中,该业务操作处理方法还包括:设置代理将业务操作请求对应的业务操作和业务核心层操作请求对应的数据变更操作放在同一个事务中执行。
本申请中提供了一种业务操作处理系统,如图3所示,该系统包括:服务网关、业务应用层、业务核心层和存储层。服务网关将外部请求路由至业务应用层,业务应用层包括接口调用、消息消费、第一拦截器、业务处理、RPC(远程过程调用Remote Procedure Call)、第二拦截器和OpLogSDK,业务核心层包括接口调用、消息消费、第一拦截器、业务处理、代理、持久化和OpLogSDK。
这里的服务网关可以为zuul微服务网关。服务网关的作用:1.统一入口:为全部微服务提供唯一入口点,网关起到外部和内部隔离,保障了后台服务的安全性。2.鉴权校验:识别每个请求的权限,拒绝不符合要求的请求。3.动态路由:动态的将请求路由到不同的后端集群中。4.减少客户端与服务的耦合,服务可以独立发展,通过网关层来做映射。
本申请中还提供了一种业务操作处理方法,图4是本申请实施例的另一种业务操作处理方法的流程图,如图4所示,该流程包括如下步骤:
步骤S410,服务网关将业务操作请求路由到业务应用层。
步骤S420,业务应用层调用OpLogSDK的第一拦截器,对业务操作请求进行拦截。
具体地,这里的第一拦截器为http拦截器,该http拦截器判断业务操作请求的标头(header)中是否携带有跟踪标识(traceID),若未携带则生成一个traceID,将traceID写入OpLogSDK的OpLogContext类的上下文中。
步骤S430,业务应用层根据业务操作请求进行业务处理。
具体地,业务应用层根据业务操作请求进行业务处理,生成多个业务核心层的处理请求。这里的业务操作仅在上层,也即业务应用层进行处理,下层也即业务核心层不涉及业务操作的处理。
步骤S440,业务应用层调用OpLogSDK的第二拦截器,在发出业务核心层的处理请求之前,获取traceID并写入到业务核心层的处理请求的标头中。
具体地,业务核心层的处理请求可以为相应的应用或服务的数据变更操作请求。业务应用层通过远程过程调用协议调用OpLogSDK的第二拦截器。这里的第二拦截器为feign拦截器,这里的业务核心层的处理请求为feign请求。在发出业务核心层的处理请求之前,从OpLogSDK的OpLogContext类的上下文中取出traceID并写入到业务核心层的处理请求的标头中。
步骤S450,业务核心层调用OpLogSDK的第一拦截器,对业务核心层的处理请求进行拦截。
具体地,这里的第一拦截器为http拦截器,这里的业务核心层的处理请求为feign请求。
步骤S460,业务核心层根据业务核心层的处理请求进行业务处理。
具体地,业务核心层设置代理,代理原来的业务操作,并将业务操作对应的数据变更操作和业务操作放在一个事务中执行,执行业务逻辑后,将OpLogContext类上下文中的traceID写入存储层的数据表记录中,数据表中加入traceID列,用于串联相应的操作。在业务核心层使用代理可以不改原来的代码,去扩展原来的逻辑。
示例性地,业务核心层设置一个代理,代理原先的更新门店相关操作,并将数据表变更记录操作和更新门店放在一个事务中执行,执行业务逻辑后,数据变更记录会将OpLogContext类上下文中的traceID写入存储层的数据表记录中,数据表中加入traceID列,用于串联相应的操作。业务核心层的代理,有别于业务上层的操作记录处理,这里是业务的底层实现相关的,需要业务核心层判断是否需要将当前的数据变更记录与操作记录进行绑定,如果需要则需要把操作记录的traceID写入数据变更记录中。这里建议将数据变更记录和数据更新操作放在一个事务中进行,但不是必须。
在本实施例中,通过第一拦截器对业务操作请求进行拦截,生成业务操作请求对应的跟踪标识,并根据业务操作请求和跟踪标识生成业务操作记录,第二拦截器对第一业务核心层操作请求进行拦截,以将业务操作请求对应的跟踪标识写入第一业务核心层操作请求中,生成第二业务核心层操作请求,对第二业务核心层操作请求进行业务核心层的业务处理后,生成包括跟踪标识的数据变更记录,从而使得业务操作记录和数据变更记录中均携带跟踪标识,在系统数据存在异常时,根据该异常数据查找相关联的跟踪标识,根据查找到的跟踪标识,获取与异常数据相关联的所有的业务操作记录和数据变更记录,从而实现异常原因的快速定位。
本申请中还提供了一种业务操作处理方法,图5是本申请实施例的另一种业务操作处理方法的流程图,如图5所示,该流程包括如下步骤:
步骤S510,网关将业务操作请求路由到上层应用。
具体地,用户发送一个业务操作请求,该业务操作请求会到服务网关,网关会将业务操作请求路由到上层应用(即业务应用层)。业务应用层在接口处理前,会调用OpLogSDK的http拦截器(这里的拦截器与接口调用时的拦截器,为同一个)进行拦截,对业务操作请求打上traceID(跟踪标识),并存入OpLogSDK的OpLogContext类的上下文中。OpLogContext类包含threadlocal变量,用来存储traceID,实现线程池中的线程之间的traceID的透传。TransmittableThreadLocal是一个开源的可传递的threadLocal组件。在处理父子线程和线程池之间的线程切换时利用threadLocal组件进行traceId的传递。在处理不同应用之间远程调用时进行traceId的传递则用到了第一拦截器和第二拦截器。TransmittableThreadLocal是通过改写线程切换和线程池执行任务的关键方法,以及利用InheritableThreadLocal进行传递的方式来实现线程局部变量的正确传递的。下面是TransmittableThreadLocal如何做到这一点的简要说明:1.改写线程切换方法:在Java中,线程切换是由底层操作系统调度完成的。'TransmittableThreadLocal'在线程切换之前和之后,通过钩子方法(例如'beforeExecute()'和'afterExecute()'方法)来保存和恢复线程局部变量的值。这样,在线程切换时,它会确保先保存上一个线程局部变量的值,然后在新线程上恢复正确的值。2.利用InheritableThreadLocal:'TransmittableThreadLocal'内部利用了'InheritableThreadLocal',后者允许子线程继承父线程的线程局部变量值。当线程池中的线程执行任务时,它会从父线程继承正确的线程局部变量值。
步骤S520,业务操作请求达到上层应用的控制层后,通过注解对业务操作请求进行拦截。
具体地,参考图6,外部请求(即业务操作请求)到达控制层后,控制层有注解,通过spring框架扫描到这个注解后,将注解解析器的代码植入到被注解的代码里面,形成一个新的代理类。后续流程走到被注解的代码时会走代理类的逻辑,在代理类里面相当于在原注解的代码里加了这层以获取操作请求信息,模板信息和操作人等信息的程序,然后通过图6中的注解解析器advisor、分解器OpLog resolver和feign组件这条链路将这些信息传输给OpLogServer(操作日志服务)端,OpLogServer端处理后进行存储。通过注解@OpLog、注解解析器advisor、分解器OpLog resolver和feign组件来实现第一拦截器,其中,通过注解解析器advisor解析注解@OpLog;通过分解器OpLog resolver根据注解解析器advisor的解析结果判断业务操作请求中是否携带traceID,当没有携带traceID时,则生成traceID,并将该traceID写入OpLogContext类的上下文中;通过feign组件将业务操作请求记录和traceID存入OpLogServer的第一数据库中。advisor是负责把注解@OpLog和OpLogresolver组合串连的,让OpLog resolver去处理被注解@OpLog注解的接口,例如从注解中获取操作类型,操作模板,根据模板从接口参数和响应中获取模板变量并组装操作记录,从接口的http请求中获取请求信息和登录用户信息并补充到操作记录中。OpLog服务还提供了对外的API接口,从而提供一些能力,比如有提供查询功能、提供操作部分的一些命令处理和提供外部事件消息消费的能力。OpLog服务通过日志查询、分析报表、日志处理、定时任务、事件处理和监控告警等方式来实现对外的能力。OpLogServer包括三部分功能:一部分为对操作日志的存储;另一个为查询,数据变更存储在第二数据库中,操作日志是在第一数据库中,提供的查询功能即相当于聚合,即查询要同时查询第一数据库和第二数据库,对查询到的数据进行聚合,提供一个完整的操作日志,以及关联的数据变更信息作为一个完成的数据,提供给用户。注解放在API上,注解包含请求信息:请求接口、请求方法(http方法)、请求参数、应用名、请求时间;注解还包括模板解析信息,其解析依靠不同的模板规则;注解还包括操作人信息(身份ID、用户名、用户所属部门、公司、租户ID)和traceID。需要说明的是OpLogServer和OpLogSDK均为开发的应用,其中,OpLogSDK提供了两个拦截器类(http拦截器和feign拦截器、OpLogContext类(包含threadlocal变量,用于存储traceID)、注解、注解解析器、传输装置(用于将解析注解出来的操作数据传给服务,该服务用于记录操作内容,如OpLogServer)和工具类(通用,协调)。OpLogSDK实现注解解析、链路追踪和数据传输,数据传输为OpLogSDK将数据分发至OpLogServer端。OpLogSDK开发的代码打成包供用户使用,OpLogServer代码打包后,部署为服务器。feign是Spring Cloud中的一个组件,是一个声明式的Web服务客户端,可以更轻松地调用HTTP请求。
步骤S530,上层应用对业务操作请求进行业务处理。
具体地,上层应用继续对业务操作请求进行处理。参考图6,通过服务层进行业务处理,比如进行门店分配的操作,会做一些校验。比如校验当前用户是否有权限去分配,然后被分配的人,是否有权限接受。有多个校验时,这些校验可以并行处理的情况下,则分配多个线程去执行多个校验。在执行这些校验的时候,会调用其他下游的服务去提供一些数据做判断。这个时候调用请求通过feign组件发到下游的应用,然后会经过feign拦截器,feign拦截器会拿到当前线程上下文的traceID,将该traceID塞到下游应用的请求中,将该下游应用的请求发到下游。这里的下游应用可以为业务核心层应用。
步骤S540,下游应用对下游应用的请求进行业务处理。
具体地,下游应用,接收到上游发送的请求之前,先通过第一拦截器获取traceID,发到自己的线程上,进行相应的业务处理,最终要去数据持久化的时候,比如说需要插入几张数据变更记录,则将traceID放入变更的数据表中,并存到第二数据库中。下游应用的第一拦截器的实现方式与上游应用的第一拦截器的实现方式相同。
步骤S550,用户根据跟踪标识进行数据查询。
具体地,在用户查询时,同时查询第一数据库和第二数据库,对查询到的数据进行聚合,提供一个完整的操作日志,以及关联的数据变更信息作为一个完成的数据,提供给用户。
在本实施例中,通过第一拦截器对业务操作请求进行拦截,生成业务操作请求对应的跟踪标识,并根据业务操作请求和跟踪标识生成业务操作记录,第二拦截器对第一业务核心层操作请求进行拦截,以将业务操作请求对应的跟踪标识写入第一业务核心层操作请求中,生成第二业务核心层操作请求,对第二业务核心层操作请求进行业务核心层的业务处理后,生成包括跟踪标识的数据变更记录,从而使得业务操作记录和数据变更记录中均携带跟踪标识,在系统数据存在异常时,根据该异常数据查找相关联的跟踪标识,根据查找到的跟踪标识,获取与异常数据相关联的所有的业务操作记录和数据变更记录,从而实现异常原因的快速定位。采用多线程处理,提高处理速度;拦截会影响线程,注解的信息分多个子线程并发处理,缓存不常变的信息(如操作人信息),提高处理速度。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本申请中还提供了一种业务操作处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是本申请实施例的一种业务操作处理装置的结构框图,如图7所示,该装置包括:
第一调用模块710,用于调用第一拦截器对业务操作请求进行拦截,以判断业务操作请求中是否包含跟踪标识;在业务操作请求中未携带跟踪标识时,生成业务操作请求对应的跟踪标识,并根据业务操作请求和跟踪标识生成业务操作记录;业务操作记录包括跟踪标识;
第二调用模块720,用于在对业务操作请求进行业务应用层的业务处理后,根据业务处理结果生成第一业务核心层操作请求;调用第二拦截器对第一业务核心层操作请求进行拦截,以将业务操作请求对应的跟踪标识写入第一业务核心层操作请求中,生成第二业务核心层操作请求;
处理模块730,用于对第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录;数据变更记录包括跟踪标识;
聚合模块740,用于根据跟踪标识,对业务操作记录和数据变更记录进行聚合。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本申请中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,调用第一拦截器对业务操作请求进行拦截,以判断业务操作请求中是否包含跟踪标识;在业务操作请求中未携带跟踪标识时,生成业务操作请求对应的跟踪标识,并根据业务操作请求和跟踪标识生成业务操作记录;业务操作记录包括跟踪标识;
S2,在对业务操作请求进行业务应用层的业务处理后,根据业务处理结果生成第一业务核心层操作请求;调用第二拦截器对第一业务核心层操作请求进行拦截,以将业务操作请求对应的跟踪标识写入第一业务核心层操作请求中,生成第二业务核心层操作请求;
S3,对第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录;数据变更记录包括跟踪标识;
S4,根据跟踪标识,对业务操作记录和数据变更记录进行聚合。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的一种业务操作处理方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种业务操作处理方法的步骤。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种业务操作处理方法,其特征在于,所述方法包括:
调用第一拦截器对业务操作请求进行拦截,以判断所述业务操作请求中是否包含跟踪标识;在所述业务操作请求中未携带跟踪标识时,生成所述业务操作请求对应的跟踪标识,并根据所述业务操作请求和所述跟踪标识生成业务操作记录;所述业务操作记录包括所述跟踪标识;
在对所述业务操作请求进行业务应用层的业务处理后,根据业务处理结果生成第一业务核心层操作请求;调用第二拦截器对所述第一业务核心层操作请求进行拦截,以将所述业务操作请求对应的跟踪标识写入所述第一业务核心层操作请求中,生成第二业务核心层操作请求;
对所述第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录;所述数据变更记录包括所述跟踪标识;
根据所述跟踪标识,对所述业务操作记录和所述数据变更记录进行聚合。
2.根据权利要求1所述的业务操作处理方法,其特征在于,所述对所述第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录,包括:
调用所述第一拦截器对所述第二业务核心层操作请求进行拦截;
在所述第二业务核心层操作请求中携带所述跟踪标识时,获取所述跟踪标识;
根据业务核心层的业务处理结果和所述跟踪标识,生成所述数据变更记录。
3.根据权利要求1所述的业务操作处理方法,其特征在于,所述对所述第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录,包括:
调用所述第一拦截器对所述第二业务核心层操作请求进行拦截;
在所述第二业务核心层操作请求中未携带所述跟踪标识时,生成所述第二业务核心层操作请求对应的跟踪标识;
根据业务核心层的业务处理结果和所述第二业务核心层操作请求对应的跟踪标识,生成所述数据变更记录。
4.根据权利要求2或权利要求3所述的业务操作处理方法,其特征在于,所述调用第一拦截器对业务操作请求进行拦截包括:通过注解调用第一拦截器对业务操作请求进行拦截;所述调用所述第一拦截器对所述第二业务核心层操作请求进行拦截包括:通过注解调用所述第一拦截器对所述第二业务核心层操作请求进行拦截。
5.根据权利要求1所述的业务操作处理方法,其特征在于,所述调用第二拦截器对所述第一业务核心层操作请求进行拦截,包括:
通过远程过程调用协议调用第二拦截器对所述第一业务核心层操作请求进行拦截。
6.根据权利要求4所述的业务操作处理方法,其特征在于,在所述业务操作请求中未携带跟踪标识时,生成所述业务操作请求对应的跟踪标识,并根据所述业务操作请求和所述跟踪标识生成业务操作记录,包括:
将生成的所述业务操作请求对应的跟踪标识写入上下文中。
7.根据权利要求1所述的业务操作处理方法,其特征在于,所述方法还包括:
设置代理将所述业务操作请求对应的业务操作和业务核心层操作请求对应的数据变更操作放在同一个事务中执行。
8.一种业务操作处理装置,其特征在于,所述装置包括:
第一调用模块,用于调用第一拦截器对业务操作请求进行拦截,以判断所述业务操作请求中是否包含跟踪标识;在所述业务操作请求中未携带跟踪标识时,生成所述业务操作请求对应的跟踪标识,并根据所述业务操作请求和所述跟踪标识生成业务操作记录;所述业务操作记录包括所述跟踪标识;
第二调用模块,用于在对所述业务操作请求进行业务应用层的业务处理后,根据业务处理结果生成第一业务核心层操作请求;调用第二拦截器对所述第一业务核心层操作请求进行拦截,以将所述业务操作请求对应的跟踪标识写入所述第一业务核心层操作请求中,生成第二业务核心层操作请求;
处理模块,用于对所述第二业务核心层操作请求进行业务核心层的业务处理后,生成数据变更记录;所述数据变更记录包括所述跟踪标识;
聚合模块,用于根据所述跟踪标识,对所述业务操作记录和所述数据变更记录进行聚合。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至权利要求7中任一项所述的业务操作处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求7中任一项所述的业务操作处理方法的步骤。
CN202311155637.3A 2023-09-08 2023-09-08 一种业务操作处理方法、装置、电子装置和存储介质 Pending CN116881040A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311155637.3A CN116881040A (zh) 2023-09-08 2023-09-08 一种业务操作处理方法、装置、电子装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311155637.3A CN116881040A (zh) 2023-09-08 2023-09-08 一种业务操作处理方法、装置、电子装置和存储介质

Publications (1)

Publication Number Publication Date
CN116881040A true CN116881040A (zh) 2023-10-13

Family

ID=88260944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311155637.3A Pending CN116881040A (zh) 2023-09-08 2023-09-08 一种业务操作处理方法、装置、电子装置和存储介质

Country Status (1)

Country Link
CN (1) CN116881040A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149798A (zh) * 2023-11-01 2023-12-01 建信金融科技有限责任公司 业务变更处理方法、装置、设备、介质及程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489315A (zh) * 2019-07-18 2019-11-22 威富通科技有限公司 一种操作请求的跟踪方法、跟踪装置及服务器
CN111241125A (zh) * 2020-01-08 2020-06-05 成都嗨学洛子教育科技有限公司 一种记录操作日志的方法、装置、电子设备和存储介质
CN111865978A (zh) * 2020-07-20 2020-10-30 深圳乐信软件技术有限公司 一种微服务的请求标识更新方法、装置、设备及介质
CN113867913A (zh) * 2021-09-27 2021-12-31 平安国际智慧城市科技股份有限公司 面向微服务的业务请求处理方法、装置、设备及存储介质
CN116107781A (zh) * 2021-11-09 2023-05-12 中国移动通信集团广东有限公司 日志追踪方法、装置、电子设备、及计算机程序产品

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489315A (zh) * 2019-07-18 2019-11-22 威富通科技有限公司 一种操作请求的跟踪方法、跟踪装置及服务器
CN111241125A (zh) * 2020-01-08 2020-06-05 成都嗨学洛子教育科技有限公司 一种记录操作日志的方法、装置、电子设备和存储介质
CN111865978A (zh) * 2020-07-20 2020-10-30 深圳乐信软件技术有限公司 一种微服务的请求标识更新方法、装置、设备及介质
CN113867913A (zh) * 2021-09-27 2021-12-31 平安国际智慧城市科技股份有限公司 面向微服务的业务请求处理方法、装置、设备及存储介质
CN116107781A (zh) * 2021-11-09 2023-05-12 中国移动通信集团广东有限公司 日志追踪方法、装置、电子设备、及计算机程序产品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149798A (zh) * 2023-11-01 2023-12-01 建信金融科技有限责任公司 业务变更处理方法、装置、设备、介质及程序产品
CN117149798B (zh) * 2023-11-01 2024-02-02 建信金融科技有限责任公司 业务变更处理方法、装置、设备、介质及程序产品

Similar Documents

Publication Publication Date Title
CN111580995B (zh) 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统
CN111258627B (zh) 一种接口文档生成方法和装置
CN108322437B (zh) 用于多规约设备之间的自适应通讯方法和装置
CN112637329B (zh) 一种多应用程序的标识方法、装置、设备及存储介质
CN116881040A (zh) 一种业务操作处理方法、装置、电子装置和存储介质
CN110851248A (zh) 异步任务数据处理方法、装置及计算机可读存储介质
CN112565334B (zh) 物联网设备的接入方法、装置及mqtt网关
CN114153626A (zh) 一种服务集成过程抽象的方法、装置和计算机设备
CN111225082B (zh) 一种物联网智能设备的身份管理方法、装置及物联网平台
CN110933188A (zh) 远程服务的调用方法、系统、服务器及存储介质
CN111309691A (zh) 基于总线架构的数据共享交换系统和交换方法
CN112702362B (zh) Tcp/ip协议栈的增强方法、装置、电子设备及存储介质
CN112217845B (zh) 一种基于Netconf协议的数据传输方法及相关设备
CN112448909A (zh) 电子锁管理方法、装置、系统及存储介质
CN115567594A (zh) 微服务请求处理方法、装置、计算机设备及存储介质
US7912922B2 (en) Globally unique instance identification
US20150032789A1 (en) Dynamic object oriented remote instantiation
CN111756836B (zh) 一种基于事件管理模型的信息发送方法及装置
CN111740972B (zh) 一种通信协议栈信息的更新方法、装置、设备及存储介质
CN114661762A (zh) 嵌入式数据库的查询方法、装置、存储介质及设备
CN113556370A (zh) 一种服务调用方法和装置
CN113342845A (zh) 数据同步方法、计算机设备及可读存储介质
CN107102874B (zh) 一种应用程序并发安装方法及系统
CN104298750B (zh) 用于实时系统通信的更新处理方法及装置
KR100578029B1 (ko) 이동통신 시스템을 위한 가입자정보 관리시스템의인터페이스 구조

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