CN107741885B - 基于cs架构的事务与业务关联方法、关联*** - Google Patents
基于cs架构的事务与业务关联方法、关联*** Download PDFInfo
- Publication number
- CN107741885B CN107741885B CN201710930462.7A CN201710930462A CN107741885B CN 107741885 B CN107741885 B CN 107741885B CN 201710930462 A CN201710930462 A CN 201710930462A CN 107741885 B CN107741885 B CN 107741885B
- Authority
- CN
- China
- Prior art keywords
- information
- service
- transaction
- response
- request
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提出了一种基于CS架构的事务与业务关联方法、关联***、计算机设备、计算机可读存储介质。其中,基于CS架构的事务与业务关联方法包括:接收客户端指令,执行指令以进入与指令绑定的响应事件;执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息;将远程调用信息对应的事务信息与业务信息绑定。本发明一方面,以业务关联事务为基础而实现的慢业务功能,可以演变出很多以业务为关注维度的功能点;另一方面,用户在发现慢业务时,可以通过查看该业务下发生的后台事务数量或事务详情进行问题定位,***病灶一目了然。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种基于CS架构的事务与业务关联方法、基于CS架构的事务与业务关联***、计算机设备、计算机可读存储介质。
背景技术
在软件***持续集成的过程中,***变得越来越庞大,单次业务操作所需要进行的远程调用次数随之越来越多。但是用户对于效率的要求并没有降低,因此需要***开发者在遇到***缓慢时能够快速定位缓慢原因并进行优化,进而提升用户体验。
在现有的APM产品中,监控的维度大多停留在事务。慢事务信息固然能够在一定层面解决性能问题,但是并不能够直接反映用户所感受到的***速度。举例来说,单次业务操作可能包含上万个重复的短耗时事务。这时用户反馈***慢,但是开发人员面对短耗时事务却无法准确定位问题根源。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明第一个方面在于提出一种基于CS架构的事务与业务关联方法。
本发明的第二个方面在于提出一种基于CS架构的事务与业务关联***。
本发明的第三个方面在于提出一种计算机设备。
本发明的第四个方面在于提出一种计算机可读存储介质。
有鉴于此,根据本发明的一个方面,提出了一种基于CS架构的事务与业务关联方法,包括:接收客户端指令,执行指令以进入与指令绑定的响应事件;执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息;将远程调用信息对应的事务信息与业务信息绑定。
本发明提供的基于CS架构的事务与业务关联方法,在用户打开节点或者点击按钮时,接收客户端的指令,并执行指令进入与指令绑定的响应事件,客户端在响应事件的开始会生成一个业务信息,包括全局唯一的业务编码ID,在响应事件过程中产生的每一次远程调用的调用信息进行记录,并将在该业务下发生的所有远程调用对应的事务信息与该业务信息进行绑定,如此,实现了事务与业务的绑定,进而以业务关联事务为基础而实现的慢业务功能,可以演变出很多以业务为关注维度的功能点;用户在发现慢业务时,可以通过查看该业务下发生的后台事务数量或事务详情进行问题定位,***病灶一目了然;另外可以直观的看到业务操作耗时,更及时的发现问题,在用户发生抱怨之前将***问题扼杀在摇篮中。
根据本发明的上述基于CS架构的事务与业务关联方法,还可以具有以下技术特征:
在上述技术方案中,优选地,执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息,具体包括:将响应事件派发至线程中,生成业务信息;在线程中创建本地变量;将业务信息和远程调用信息记录在本地变量中。
在该技术方案中,响应事件方法的执行是在事件派发线程(EDT)中,此时生成业务信息,在EDT线程中创建本地变量,本地变量用于存储业务和事务信息,响应期间将每一次远程调用的信息记录到本地变量中,如此,实现了对某一业务线远程调用信息的记录。
在上述任一技术方案中,优选地,将远程调用信息对应的事务信息与业务信息绑定,具体包括:根据响应事件中远程调用所处的线程来确定响应类型;根据响应类型以对应的方式将远程调用信息对应的事务信息与业务信息绑定。
在该技术方案中,将远程调用信息对应的事务信息与业务信息绑定过程要区分响应类型,因为在同步响应中,响应方法的结束即为业务操作的结束,而在异步响应中,在后台进行耗时任务的同时,仍然可以点击其他按钮,因此,针对同步响应和异步响应是需要采用不同的方式将远程调用信息对应的事务信息与业务信息绑定,使得无论是同步响应和异步响应都能正确的将事务与业务进行绑定。具体是根据响应事件中远程调用所处的线程来确定响应类型。
在上述任一技术方案中,优选地,根据响应类型以对应的方式将远程调用信息对应的事务信息与业务信息绑定,具体包括:当响应的类型为同步响应时,获取本地变量中所有远程调用的信息对应的事务信息;直接将事务信息与业务信息绑定。
在该技术方案中,当响应的类型为同步响应时,将远程调用信息对应的事务信息与业务信息绑定过程具体为:首先获取本地变量中所有远程调用的信息对应的事务信息,响应方法的结束即为业务操作的结束,在响应方法结束时,本地变量已记录了所有的远程调用信息,那么,在事件响应方法执行结束时,直接将业务信息与所有的远程调用信息对应的事务信息绑定即可。
在上述任一技术方案中,优选地,根据响应类型以对应的方式将远程调用信息对应的事务信息与业务信息绑定,具体还包括:当响应的类型为异步响应时,判断远程调用的请求类型;当请求类型为具有业务意义的同步前台请求但本地变量尚未有记录的业务信息和/或请求类型为具有业务意义的异步前台请求但本地变量记录的业务信息不是当前业务信息时,则新建另一个本地变量以存储新的业务信息,并将当前远程调用的信息对应的事务信息与新的业务信息绑定;以及当请求类型为具有业务意义的异步前台请求且本地变量记录的业务信息是当前业务信息时,则直接将当前远程调用的信息对应的事务信息与业务信息绑定;以及当请求类型为非业务意义的后台请求和未知类型的请求时,控制不绑定请求业务信息。
在该技术方案中,当响应的类型为异步响应时,在后台进行耗时任务的同时,仍然可以点击其他按钮,所以具有多种情况,不同的请求类型绑定的方式不同。将远程调用信息对应的事务信息与业务信息绑定过程具体为:首先判断远程调用的请求类型,如果是具有业务意义的同步前台请求但本地变量尚未有记录的业务信息和/或请求类型为具有业务意义的异步前台请求但本地变量记录的业务信息不是当前业务信息时,这两种请求目前的本地变量中没有记录相应的当前业务信息,那么就需要创建一个新的本地变量,在新的本地变量中存储新的业务信息,并将当前远程调用的信息对应的事务信息与新的业务信息绑定,实现了当前远程调用的信息对应的事务信息与当前业务信息绑定。如果当请求类型为具有业务意义的异步前台请求且本地变量记录的业务信息是当前业务信息时,说明目前的本地变量记录的就是与当前远程调用的信息对应的业务信息,那么则直接将当前远程调用的信息对应的事务信息与业务信息绑定。如果当请求类型为非业务意义的后台请求和未知类型的请求时,也就是在当前的远程调用不具业务意义时以及未知类型的请求时,无需将远程调用信息与业务绑定,那么控制业务信息与该请求。如此,在响应类型为异步响应的时,分别对不同请求类型进行不同方式绑定以及在不需绑定时控制不进行绑定,实现正确的业务信息与其在该业务相爱发生的事务信息的绑定。
上述任一技术方案中,优选地,业务信息包括以下一种或其组合:业务编码ID、业务操作总耗时、业务操作人、业务操作时间、业务操作的节点按钮名称;事务信息包括以下一种或其组合:事务编码ID、事务耗时、远程调用过程、远程调用的类型、远程调用的名称、远程调用的时间。
在该技术方案中,通过详细的业务信息和事务信息了解该业务中包含了哪些远程调用,每次远程调用包含的网络耗时和后台事务耗时,通过业务编码ID可快速查找与该编号ID绑定的所有远程调用,通过业务总耗时直观的反馈***反映的快慢,对于发现为耗时较长的事务,可以直接穿透到该事务的事务详情进行问题定位,可以直观的看到业务下面的事务组成:是由于事务多引起总耗时长,还是由于单事务耗时过长导致总耗时长,亦或是网络耗时过长导致总耗时长。
根据本发明的第二个方面,提出了一种基于CS架构的事务与业务关联***,包括:进入单元,用于接收客户端指令,执行指令以进入与指令绑定的响应事件;记录单元,用于执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息;绑定单元,用于将远程调用信息对应的事务信息与业务信息绑定。
本发明提供的基于CS架构的事务与业务关联***,进入单元在用户打开节点或者点击按钮时,接收客户端的指令,并执行指令进入与指令绑定的响应事件,客户端在响应事件的开始会生成一个业务信息,包括全局唯一的业务编码ID,记录单元在响应事件过程中产生的每一次远程调用的调用信息进行记录,绑定单元将在该业务下发生的所有远程调用对应的事务信息与该业务信息进行绑定,如此,实现了事务与业务的绑定,进而以业务关联事务为基础而实现的慢业务功能,可以演变出很多以业务为关注维度的功能点;用户在发现慢业务时,可以通过查看该业务下发生的后台事务数量或事务详情进行问题定位,***病灶一目了然;另外可以直观的看到业务操作耗时,更及时的发现问题,在用户发生抱怨之前将***问题扼杀在摇篮中。
根据本发明的上述基于CS架构的事务与业务关联***,还可以具有以下技术特征:
在上述技术方案中,优选地,记录单元具体包括:派发单元,用于将响应事件派发至线程中,生成业务信息;创建单元,用于在线程中创建本地变量;记录子单元,用于将业务信息和远程调用信息记录在本地变量中。
在该技术方案中,派发单元将响应事件派发至事件派发线程(EDT)中,此时生成业务信息,创建单元在EDT线程中创建本地变量,本地变量用于存储业务和事务信息,记录子单元响应期间将每一次远程调用的信息记录到本地变量中,如此,实现了对某一业务线远程调用信息的记录。
在上述任一技术方案中,优选地,绑定单元具体包括:确定单元,用于根据响应事件中远程调用所处的线程来确定响应类型;分类绑定单元,用于根据响应类型以对应的方式将远程调用信息对应的事务信息与业务信息绑定。
在该技术方案中,绑定单元将远程调用信息对应的事务信息与业务信息绑定过程要区分响应类型,因为在同步响应中,响应方法的结束即为业务操作的结束,而在异步响应中,在后台进行耗时任务的同时,仍然可以点击其他按钮,因此,分类绑定单元针对同步响应和异步响应是需要采用不同的方式将远程调用信息对应的事务信息与业务信息绑定,使得无论是同步响应和异步响应都能正确的将事务与业务进行绑定。具体确定单元是根据响应事件中远程调用所处的线程来确定响应类型。
在上述任一技术方案中,优选地,分类绑定单元具体包括:获取单元,用于当响应的类型为同步响应时,获取本地变量中所有远程调用的信息对应的事务信息;第一绑定子单元,用于直接将事务信息与业务信息绑定。
在该技术方案中,当响应的类型为同步响应时,将远程调用信息对应的事务信息与业务信息绑定过程具体为:首先获取单元获取本地变量中所有远程调用的信息对应的事务信息,响应方法的结束即为业务操作的结束,在响应方法结束时,本地变量已记录了所有的远程调用信息,那么,第一绑定子单元在事件响应方法执行结束时,直接将业务信息与所有的远程调用信息对应的事务信息绑定即可。
在上述任一技术方案中,优选地,分类绑定单元具体还包括:判断单元,用于当响应的类型为异步响应时,判断远程调用的请求类型;第二绑定子单元,用于当请求类型为具有业务意义的同步前台请求但本地变量尚未有记录的业务信息和/或请求类型为具有业务意义的异步前台请求但本地变量记录的业务信息不是当前业务信息时,则新建另一个本地变量以存储新的业务信息,并将当前远程调用的信息对应的事务信息与新的业务信息绑定;第三绑定子单元,用于当请求类型为具有业务意义的异步前台请求且本地变量记录的业务信息是当前业务信息时,则直接将当前远程调用的信息对应的事务信息与业务信息绑定;以及控制单元,用于当请求类型为非业务意义的后台请求和未知类型的请求时,控制不绑定请求业务信息。
在该技术方案中,当响应的类型为异步响应时,在后台进行耗时任务的同时,仍然可以点击其他按钮,所以具有多种情况,不同的请求类型绑定的方式不同。将远程调用信息对应的事务信息与业务信息绑定过程具体为:首先判断单元判断远程调用的请求类型,如果是具有业务意义的同步前台请求但本地变量尚未有记录的业务信息和/或请求类型为具有业务意义的异步前台请求但本地变量记录的业务信息不是当前业务信息时,这两种请求目前的本地变量中没有记录相应的当前业务信息,那么就需要第二绑定子单元创建一个新的本地变量,在新的本地变量中存储新的业务信息,并将当前远程调用的信息对应的事务信息与新的业务信息绑定,实现了当前远程调用的信息对应的事务信息与当前业务信息绑定。如果当请求类型为具有业务意义的异步前台请求且本地变量记录的业务信息是当前业务信息时,说明目前的本地变量记录的就是与当前远程调用的信息对应的业务信息,那么则第三绑定子单元直接将当前远程调用的信息对应的事务信息与业务信息绑定。如果当请求类型为非业务意义的后台请求和未知类型的请求时,也就是在当前的远程调用不具业务意义时以及未知类型的请求时,无需将远程调用信息与业务绑定,那么控制单元控制业务信息与该请求。如此,在响应类型为异步响应的时,分别对不同请求类型进行不同方式绑定以及在不需绑定时控制不进行绑定,实现正确的业务信息与其在该业务相爱发生的事务信息的绑定。
上述任一技术方案中,优选地,业务信息包括以下一种或其组合:业务编码ID、业务操作总耗时、业务操作人、业务操作时间、业务操作的节点按钮名称;事务信息包括以下一种或其组合:事务编码ID、事务耗时、远程调用过程、远程调用的类型、远程调用的名称、远程调用的时间。
在该技术方案中,通过详细的业务信息和事务信息了解该业务中包含了哪些远程调用,每次远程调用包含的网络耗时和后台事务耗时,通过业务编码ID可快速查找与该编号ID绑定的所有远程调用,通过业务总耗时直观的反馈***反映的快慢,对于发现为耗时较长的事务,可以直接穿透到该事务的事务详情进行问题定位,可以直观的看到业务下面的事务组成:是由于事务多引起总耗时长,还是由于单事务耗时过长导致总耗时长,亦或是网络耗时过长导致总耗时长。
根据本发明的第三个方面,本发明提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收客户端指令,执行指令以进入与指令绑定的响应事件;执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息;将远程调用信息对应的事务信息与业务信息绑定。
本发明提供的一种计算机设备,处理器执行计算机程序时实现:在用户打开节点或者点击按钮时,接收客户端的指令,并执行指令进入与指令绑定的响应事件,客户端在响应事件的开始会生成一个业务信息,包括全局唯一的业务编码ID,在响应事件过程中产生的每一次远程调用的调用信息进行记录,并将在该业务下发生的所有远程调用对应的事务信息与该业务信息进行绑定,如此,实现了事务与业务的绑定,进而以业务关联事务为基础而实现的慢业务功能,可以演变出很多以业务为关注维度的功能点;用户在发现慢业务时,可以通过查看该业务下发生的后台事务数量或事务详情进行问题定位,***病灶一目了然;另外可以直观的看到业务操作耗时,更及时的发现问题,在用户发生抱怨之前将***问题扼杀在摇篮中。
根据本发明的第四个方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收客户端指令,执行指令以进入与指令绑定的响应事件;执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息;将远程调用信息对应的事务信息与业务信息绑定。
本发明提供的一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现:在用户打开节点或者点击按钮时,接收客户端的指令,并执行指令进入与指令绑定的响应事件,客户端在响应事件的开始会生成一个业务信息,包括全局唯一的业务编码ID,在响应事件过程中产生的每一次远程调用的调用信息进行记录,并将在该业务下发生的所有远程调用对应的事务信息与该业务信息进行绑定,如此,实现了事务与业务的绑定,进而以业务关联事务为基础而实现的慢业务功能,可以演变出很多以业务为关注维度的功能点;用户在发现慢业务时,可以通过查看该业务下发生的后台事务数量或事务详情进行问题定位,***病灶一目了然;另外可以直观的看到业务操作耗时,更及时的发现问题,在用户发生抱怨之前将***问题扼杀在摇篮中。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明的一个实施例的基于CS架构的事务与业务关联方法的流程示意图;
图2示出了本发明的一个实施例的用户进行一次业务操作后的操作结果示意图;
图3示出了本发明的一个实施例的用户在一次业务操作后,业务与事务完成关联后的性能数据的示意图;
图4示出了本发明的一个实施例的针对一次业务操作的前端展示的示意图;
图5示出了本发明的一个实施例的某一业务操作包含的事务信息的示意图;
图6示出了本发明的一个实施例的业务操作包含的某一事务的事务详情示意图;
图7示出了本发明的一个实施例的基于CS架构的事务与业务关联原理示意图;
图8示出了本发明的另一个实施例的基于CS架构的事务与业务关联方法的流程示意图;
图9示出了本发明的一个实施例的同步响应下事务与业务进行关联的示意图;
图10示出了本发明的一个实施例的异步响应下事务与业务进行关联的示意图;
图11示出了本发明的一个实施例的异步响应下判断远程调用请求类型的方法流程示意图;
图12示出了本发明的一个实施例的基于CS架构的事务与业务关联***的示意框图;
图13示出了本发明的一个实施例的计算机设备的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述方面、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。
本发明第一方面的实施例,提出一种基于CS架构的事务与业务关联方法,图1示出了本发明的一个实施例的基于CS架构的事务与业务关联方法的流程示意图:
步骤102,接收客户端指令,执行指令以进入与指令绑定的响应事件;
步骤104,执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息;
步骤106,将远程调用信息对应的事务信息与业务信息绑定。
本发明提供的基于CS架构的事务与业务关联方法,在用户打开节点或者点击按钮时,接收客户端的指令,并执行指令进入与指令绑定的响应事件,客户端在响应事件的开始会生成一个业务信息,包括全局唯一的业务编码ID,在响应事件过程中产生的每一次远程调用的调用信息进行记录,并将在该业务下发生的所有远程调用对应的事务信息与该业务信息进行绑定,如图2所示的在用户进行了一次业务操作后,探针代码会将已经与事务关联的业务信息通过网络通信API发送到云端进行计算、聚合、存储,发送的数据如图3所示。此时如图4所示,前端可以对本次业务操作进行展示,实现了事务与业务的绑定,进而以业务关联事务为基础而实现的慢业务功能,可以演变出很多以业务为关注维度的功能点;用户在发现慢业务时,可以通过查看该业务下发生的后台事务数量或事务详情进行问题定位,***病灶一目了然;如图5所示,穿透某一次业务操作所包含的事务信息,了解该业务操作下的所有远程调用信息,如调用次数、调用时间等等,直观的看到业务操作耗时,更及时的发现问题,在用户发生抱怨之前将***问题扼杀在摇篮中。还可以如图6所示,针对业务下某一事务,查看该事务的信息,了解事务详情。该实施例的基于CS架构的事务与业务关联方法的原理如图7所示,最终Client端发送绑定了事务id的业务信息,Server端发送绑定了业务id的事务信息,实现了事务与业务的双向绑定。
图8示出了本发明的另一个实施例的基于CS架构的事务与业务关联方法的流程示意图。其中,该方法包括:
步骤802,接收客户端指令,执行指令以进入与指令绑定的响应事件;
步骤804,将响应事件派发至线程中,生成业务信息;
步骤806,在线程中创建本地变量;
步骤808,将业务信息和远程调用信息记录在本地变量中;
步骤810,根据响应事件中远程调用所处的线程来确定响应类型;
步骤812,当响应的类型为同步响应时,获取本地变量中所有远程调用的信息对应的事务信息;
步骤814,直接将事务信息与业务信息绑定;
步骤816,当响应的类型为异步响应时,判断远程调用的请求类型;
步骤818,当请求类型为具有业务意义的同步前台请求但本地变量尚未有记录的业务信息和/或请求类型为具有业务意义的异步前台请求但本地变量记录的业务信息不是当前业务信息时,则新建另一个本地变量以存储新的业务信息,并将当前远程调用的信息对应的事务信息与新的业务信息绑定;
步骤820,当请求类型为具有业务意义的异步前台请求且本地变量记录的业务信息是当前业务信息时,则直接将当前远程调用的信息对应的事务信息与业务信息绑定;
步骤822,当请求类型为非业务意义的后台请求和未知类型的请求时,控制不绑定请求业务信息。
在该实施例中,响应事件方法的执行是在事件派发线程(EDT)中,此时生成业务信息,在EDT线程中创建本地变量,本地变量用于存储业务和事务信息,响应期间将每一次远程调用的信息记录到本地变量中,如此,实现了对某一业务线远程调用信息的记录。
在该实施例中,将远程调用信息对应的事务信息与业务信息绑定过程要区分响应类型,同步响应机制为:在配有GUI的客户端中,按钮的同步响应是指所有的远程调用都是在EDT中依次进行。远程调用作为一种长耗时任务,会阻塞界面绘制以及界面对用户其他操作的响应。站在用户角度,界面会表现为“假死”失去响应;但是同时由于界面被锁住,能够避免用户在当前业务处理期间进行其他不可预知的操作,从而保证当前业务操作结果的正确性。异步响应的事件响应机制为:EDT首先在界面中绘制动态样式标识正在进行耗时任务,然后新起后台线程,当后台线程数据处理到某种进度时向EDT提供界面更新。而站在用户角度,界面仍然是可交互的。在后台进行耗时任务的同时,仍然可以点击其他按钮,提高效率。但是可能导致先开始的任务因为其他操作的影响导致异常终止。因此,针对同步响应和异步响应是需要采用不同的方式将远程调用信息对应的事务信息与业务信息绑定,使得无论是同步响应和异步响应都能正确的将事务与业务进行绑定。具体是根据响应事件中远程调用所处的线程来确定响应类型。
在该实施例中,由于在同步响应事件中,方法的结束即为业务操作的结束,因此方案很清晰简洁:收集从点击按钮的事件响应方法开始,到事件响应方法结束,已经记录了所有发生在EDT线程中的远程调用信息,那么,在事件响应方法执行结束时,将这些事务信息直接与业务绑定即可。如图9所示的同步响应下事务与业务绑定的技术方案,在createTranInfo方法中创建线程本地变量,用于存储业务和事务信息;在writeBusiInfo2Header方法中进行将当前业务id传入后台,后台事务(getTransaction)取出业务id(readRequestheaders)后可实现绑定,并将自身事务id回传前台(writeResponseHeaders);一个业务操作可能包含多次远程调用,在结束业务操作时,通过finishBusiness发送收集到的数据;同步响应在所有的远程调用结束后才更新界面,因此从buttonclick到repaintUI界面不对用户其他操作作出响应。
在该技术方案中,当响应的类型为异步响应时,在后台进行耗时任务的同时,仍然可以点击其他按钮,所以具有多种情况,不同的请求类型绑定的方式不同。如图10所示,异步响应事件中,在新起后台线程后不等待结果,立即返回;需要在BindBusinessBeforeRequest方法中,进行远程调用请求类型的判断;当Client通过远程调用请求后台数据时,可以将请求分为以下几种情况,判断过程如图11所示:如果是具有业务意义的同步前台请求但本地变量尚未有记录的业务信息和/或请求类型为具有业务意义的异步前台请求但本地变量记录的业务信息不是当前业务信息时,这两种请求目前的本地变量中没有记录相应的当前业务信息,那么就需要创建一个新的本地变量,在新的本地变量中存储新的业务信息,并将当前远程调用的信息对应的事务信息与新的业务信息绑定,实现了当前远程调用的信息对应的事务信息与当前业务信息绑定。如果当请求类型为具有业务意义的异步前台请求且本地变量记录的业务信息是当前业务信息时,说明目前的本地变量记录的就是与当前远程调用的信息对应的业务信息,那么则直接将当前远程调用的信息对应的事务信息与业务信息绑定。如果当请求类型为非业务意义的后台请求和未知类型的请求时,也就是在当前的远程调用不具业务意义时以及未知类型的请求时,无需将远程调用信息与业务绑定,那么控制业务信息与该请求。如此,在响应类型为异步响应的时,分别对不同请求类型进行不同方式绑定以及在不需绑定时控制不进行绑定,实现正确的业务信息与其在该业务相爱发生的事务信息的绑定。
在该实施例中,通过详细的业务信息和事务信息了解该业务中包含了哪些远程调用,每次远程调用包含的网络耗时和后台事务耗时,通过业务编码ID可快速查找与该编号ID绑定的所有远程调用,通过业务总耗时直观的反馈***反映的快慢,对于发现为耗时较长的事务,可以直接穿透到该事务的事务详情进行问题定位,可以直观的看到业务下面的事务组成:是由于事务多引起总耗时长,还是由于单事务耗时过长导致总耗时长,亦或是网络耗时过长导致总耗时长。
本发明第二方面的实施例,提出一种基于CS架构的事务与业务关联***100,图12示出了本发明的一个实施例的基于CS架构的事务与业务关联***100的示意框图:
进入单元10,用于接收客户端指令,执行指令以进入与指令绑定的响应事件;
记录单元20,用于执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息;
绑定单元30,用于将远程调用信息对应的事务信息与业务信息绑定。
其中,记录单元20包括:
派发单元202,用于将响应事件派发至线程中,生成业务信息;
创建单元204,用于在线程中创建本地变量;
记录子单元206,用于将业务信息和远程调用信息记录在本地变量中。
绑定单元30具体包括:
确定单元302,用于根据响应事件中远程调用所处的线程来确定响应类型;
获取单元304,用于当响应的类型为同步响应时,获取本地变量中所有远程调用的信息对应的事务信息;
第一绑定子单元306,用于直接将事务信息与业务信息绑定;
判断单元308,用于当响应的类型为异步响应时,判断远程调用的请求类型;
第二绑定子单元310,用于当请求类型为具有业务意义的同步前台请求但本地变量尚未有记录的业务信息和/或请求类型为具有业务意义的异步前台请求但本地变量记录的业务信息不是当前业务信息时,则新建另一个本地变量以存储新的业务信息,并将当前远程调用的信息对应的事务信息与新的业务信息绑定;
第三绑定子单元312,用于当请求类型为具有业务意义的异步前台请求且本地变量记录的业务信息是当前业务信息时,则直接将当前远程调用的信息对应的事务信息与业务信息绑定;
控制单元314,用于当请求类型为非业务意义的后台请求和未知类型的请求时,控制不绑定请求业务信息。
本发明提供的基于CS架构的事务与业务关联***100,进入单元10在用户打开节点或者点击按钮时,接收客户端的指令,并执行指令进入与指令绑定的响应事件,客户端在响应事件的开始会生成一个业务信息,包括全局唯一的业务编码ID,记录单元20在响应事件过程中产生的每一次远程调用的调用信息进行记录,绑定单元30将在该业务下发生的所有远程调用对应的事务信息与该业务信息进行绑定,如此,实现了事务与业务的绑定,进而以业务关联事务为基础而实现的慢业务功能,可以演变出很多以业务为关注维度的功能点;用户在发现慢业务时,可以通过查看该业务下发生的后台事务数量或事务详情进行问题定位,***病灶一目了然;另外可以直观的看到业务操作耗时,更及时的发现问题,在用户发生抱怨之前将***问题扼杀在摇篮中。
在该实施例中,派发单元202将响应事件派发至事件派发线程(EDT)中,此时生成业务信息,创建单元204在EDT线程中创建本地变量,本地变量用于存储业务和事务信息,记录子单元206响应期间将每一次远程调用的信息记录到本地变量中,如此,实现了对某一业务线远程调用信息的记录。
在该实施例中,绑定单元30将远程调用信息对应的事务信息与业务信息绑定过程要区分响应类型,因为在同步响应中,响应方法的结束即为业务操作的结束,而在异步响应中,在后台进行耗时任务的同时,仍然可以点击其他按钮,因此,针对同步响应和异步响应是需要采用不同的方式将远程调用信息对应的事务信息与业务信息绑定,使得无论是同步响应和异步响应都能正确的将事务与业务进行绑定。具体确定单元302是根据响应事件中远程调用所处的线程来确定响应类型。
在该实施例中,当响应的类型为同步响应时,首先获取单元304获取本地变量中所有远程调用的信息对应的事务信息,响应方法的结束即为业务操作的结束,在响应方法结束时,本地变量已记录了所有的远程调用信息,那么,第一绑定子单元306在事件响应方法执行结束时,直接将业务信息与所有的远程调用信息对应的事务信息绑定即可。
在该实施例中,当响应的类型为异步响应时,在后台进行耗时任务的同时,仍然可以点击其他按钮,所以具有多种情况,不同的请求类型绑定的方式不同。首先判断单元308判断远程调用的请求类型,如果是具有业务意义的同步前台请求但本地变量尚未有记录的业务信息和/或请求类型为具有业务意义的异步前台请求但本地变量记录的业务信息不是当前业务信息时,这两种请求目前的本地变量中没有记录相应的当前业务信息,那么就需要第二绑定子单元310创建一个新的本地变量,在新的本地变量中存储新的业务信息,并将当前远程调用的信息对应的事务信息与新的业务信息绑定,实现了当前远程调用的信息对应的事务信息与当前业务信息绑定。如果当请求类型为具有业务意义的异步前台请求且本地变量记录的业务信息是当前业务信息时,说明目前的本地变量记录的就是与当前远程调用的信息对应的业务信息,那么则第三绑定子单元312直接将当前远程调用的信息对应的事务信息与业务信息绑定。如果当请求类型为非业务意义的后台请求和未知类型的请求时,也就是在当前的远程调用不具业务意义时以及未知类型的请求时,无需将远程调用信息与业务绑定,那么控制单元314控制业务信息与该请求。如此,在响应类型为异步响应的时,分别对不同请求类型进行不同方式绑定以及在不需绑定时控制不进行绑定,实现正确的业务信息与其在该业务相爱发生的事务信息的绑定。
在该实施例中,通过详细的业务信息和事务信息了解该业务中包含了哪些远程调用,每次远程调用包含的网络耗时和后台事务耗时,通过业务编码ID可快速查找与该编号ID绑定的所有远程调用,通过业务总耗时直观的反馈***反映的快慢,对于发现为耗时较长的事务,可以直接穿透到该事务的事务详情进行问题定位,可以直观的看到业务下面的事务组成:是由于事务多引起总耗时长,还是由于单事务耗时过长导致总耗时长,亦或是网络耗时过长导致总耗时长。
本发明第三方面的实施例,提出一种计算机设备,图13示出了本发明的一个实施例的计算机设备300的示意框图。其中,该计算机设备300包括:
存储器302、处理器304及存储在存储器302上并可在处理器304上运行的计算机程序,处理器304执行计算机程序时实现以下步骤:接收客户端指令,执行指令以进入与指令绑定的响应事件;执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息;将远程调用信息对应的事务信息与业务信息绑定。
本发明提供的一种计算机设备300,处理器304执行计算机程序时实现:在用户打开节点或者点击按钮时,接收客户端的指令,并执行指令进入与指令绑定的响应事件,客户端在响应事件的开始会生成一个业务信息,包括全局唯一的业务编码ID,在响应事件过程中产生的每一次远程调用的调用信息进行记录,并将在该业务下发生的所有远程调用对应的事务信息与该业务信息进行绑定,如此,实现了事务与业务的绑定,进而以业务关联事务为基础而实现的慢业务功能,可以演变出很多以业务为关注维度的功能点;用户在发现慢业务时,可以通过查看该业务下发生的后台事务数量或事务详情进行问题定位,***病灶一目了然;另外可以直观的看到业务操作耗时,更及时的发现问题,在用户发生抱怨之前将***问题扼杀在摇篮中。
本发明第四方面的实施例,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收客户端指令,执行指令以进入与指令绑定的响应事件;执行响应事件,生成业务信息,并记录执行响应事件的过程中产生的远程调用信息;将远程调用信息对应的事务信息与业务信息绑定。
本发明提供的一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现:在用户打开节点或者点击按钮时,接收客户端的指令,并执行指令进入与指令绑定的响应事件,客户端在响应事件的开始会生成一个业务信息,包括全局唯一的业务编码ID,在响应事件过程中产生的每一次远程调用的调用信息进行记录,并将在该业务下发生的所有远程调用对应的事务信息与该业务信息进行绑定,如此,实现了事务与业务的绑定,进而以业务关联事务为基础而实现的慢业务功能,可以演变出很多以业务为关注维度的功能点;用户在发现慢业务时,可以通过查看该业务下发生的后台事务数量或事务详情进行问题定位,***病灶一目了然;另外可以直观的看到业务操作耗时,更及时的发现问题,在用户发生抱怨之前将***问题扼杀在摇篮中。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于CS架构的事务与业务关联方法,其特征在于,包括:
接收客户端指令,执行所述指令以进入与所述指令绑定的响应事件;
执行所述响应事件,生成业务信息,并记录执行所述响应事件的过程中产生的远程调用信息;
将所述远程调用信息对应的事务信息与所述业务信息绑定;
所述将所述远程调用信息对应的事务信息与所述业务信息绑定,具体包括:
根据所述响应事件中远程调用所处的线程来确定响应类型;
根据所述响应类型以对应的方式将所述远程调用信息对应的事务信息与所述业务信息绑定;
根据所述响应类型以对应的方式将所述远程调用信息对应的事务信息与所述业务信息绑定,具体还包括:
当所述响应类型为异步响应时,判断远程调用的请求类型;
当所述请求类型为具有业务意义的同步前台请求但本地变量尚未有记录的所述业务信息和/或所述请求类型为具有业务意义的异步前台请求但所述本地变量记录的所述业务信息不是当前业务信息时,则新建另一个所述本地变量以存储新的业务信息,并将当前远程调用的信息对应的事务信息与所述新的业务信息绑定;以及
当所述请求类型为具有业务意义的异步前台请求且所述本地变量记录的所述业务信息是当前业务信息时,则直接将当前远程调用的信息对应的事务信息与所述业务信息绑定;以及
当所述请求类型为非业务意义的后台请求和未知类型的请求时,控制不绑定所述请求和所述业务信息。
2.根据权利要求1所述的基于CS架构的事务与业务关联方法,其特征在于,执行所述响应事件,生成业务信息,并记录执行所述响应事件的过程中产生的远程调用信息,具体包括:
将所述响应事件派发至线程中,生成所述业务信息;
在所述线程中创建本地变量;
将所述业务信息和所述远程调用信息记录在所述本地变量中。
3.根据权利要求1所述的基于CS架构的事务与业务关联方法,其特征在于,根据所述响应类型以对应的方式将所述远程调用信息对应的事务信息与所述业务信息绑定,具体包括:
当所述响应类型为同步响应时,获取所述本地变量中所有所述远程调用的信息对应的事务信息;
直接将所述事务信息与所述业务信息绑定。
4.根据权利要求1至3中任一项所述的基于CS架构的事务与业务关联方法,其特征在于,
所述业务信息包括以下一种或其组合:业务编码ID、业务操作总耗时、业务操作人、业务操作时间、业务操作的节点按钮名称;
所述事务信息包括以下一种或其组合:事务编码ID、事务耗时、远程调用过程、远程调用的类型、远程调用的名称、远程调用的时间。
5.一种基于CS架构的事务与业务关联***,其特征在于,包括:
进入单元,用于接收客户端指令,执行所述指令以进入与所述指令绑定的响应事件;
记录单元,用于执行所述响应事件,生成业务信息,并记录执行所述响应事件的过程中产生的远程调用信息;
绑定单元,用于将所述远程调用信息对应的事务信息与所述业务信息绑定;
所述的基于CS架构的事务与业务关联***,其特征在于,所述绑定单元具体包括:
确定单元,用于根据所述响应事件中远程调用所处的线程来确定响应类型;
分类绑定单元,用于根据所述响应类型以对应的方式将所述远程调用信息对应的事务信息与所述业务信息绑定;
所述分类绑定单元具体还包括:
判断单元,用于当所述响应类型为异步响应时,判断远程调用的请求类型;
第二绑定子单元,用于当所述请求类型为具有业务意义的同步前台请求但本地变量尚未有记录的业务信息和/或所述请求类型为具有业务意义的异步前台请求但所述本地变量记录的所述业务信息不是当前业务信息时,则新建另一个所述本地变量以存储新的业务信息,并将当前远程调用的信息对应的事务信息与所述新的业务信息绑定;
第三绑定子单元,用于当所述请求类型为具有业务意义的异步前台请求且所述本地变量记录的所述业务信息是当前业务信息时,则直接将当前远程调用的信息对应的事务信息与所述业务信息绑定;以及
控制单元,用于当所述请求类型为非业务意义的后台请求和未知类型的请求时,控制不绑定所述请求和所述业务信息。
6.根据权利要求5所述的基于CS架构的事务与业务关联***,其特征在于,所述记录单元具体包括:
派发单元,用于将所述响应事件派发至线程中,生成所述业务信息;
创建单元,用于在所述线程中创建本地变量;
记录子单元,用于将所述业务信息和所述远程调用信息记录在所述本地变量中。
7.根据权利要求5所述的基于CS架构的事务与业务关联***,其特征在于,所述分类绑定单元具体包括:
获取单元,用于当所述响应类型为同步响应时,获取所述本地变量中所有所述远程调用的信息对应的事务信息;
第一绑定子单元,用于直接将所述事务信息与所述业务信息绑定。
8.根据权利要求5至7中任一项所述的基于CS架构的事务与业务关联***,其特征在于,
所述业务信息包括以下一种或其组合:业务编码ID、业务操作总耗时、业务操作人、业务操作时间、业务操作的节点按钮名称;
所述事务信息包括以下一种或其组合:事务编码ID、事务耗时、远程调用过程、远程调用的类型、远程调用的名称、远程调用的时间。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述基于CS架构的事务与业务关联方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述基于CS架构的事务与业务关联方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710930462.7A CN107741885B (zh) | 2017-10-09 | 2017-10-09 | 基于cs架构的事务与业务关联方法、关联*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710930462.7A CN107741885B (zh) | 2017-10-09 | 2017-10-09 | 基于cs架构的事务与业务关联方法、关联*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107741885A CN107741885A (zh) | 2018-02-27 |
CN107741885B true CN107741885B (zh) | 2020-12-01 |
Family
ID=61236707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710930462.7A Active CN107741885B (zh) | 2017-10-09 | 2017-10-09 | 基于cs架构的事务与业务关联方法、关联*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107741885B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246071A (zh) * | 2018-06-28 | 2019-01-18 | 平安科技(深圳)有限公司 | 业务处理方法、业务***、调用管理***和业务处理*** |
CN111290866B (zh) * | 2020-02-11 | 2023-06-30 | 支付宝(杭州)信息技术有限公司 | 业务处理方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100249797B1 (ko) * | 1997-12-09 | 2000-03-15 | 정선종 | 알피씨 기반 분산처리 프로그램의 통신 이벤트/메시지 추적 방법 |
CN103248511B (zh) * | 2012-02-14 | 2016-08-03 | 金蝶软件(中国)有限公司 | 一种单点业务性能的分析方法、装置和*** |
CN106656536B (zh) * | 2015-11-03 | 2020-02-18 | 阿里巴巴集团控股有限公司 | 一种用于处理服务调用信息的方法与设备 |
CN106326017A (zh) * | 2016-08-17 | 2017-01-11 | 广东亿迅科技有限公司 | 基于Annotation使用的调用链的实现*** |
CN106487596B (zh) * | 2016-10-26 | 2019-12-13 | 宜人恒业科技发展(北京)有限公司 | 分布式服务跟踪实现方法 |
CN107181675B (zh) * | 2017-06-20 | 2020-03-03 | 北京奇艺世纪科技有限公司 | 服务调用方法及装置 |
-
2017
- 2017-10-09 CN CN201710930462.7A patent/CN107741885B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107741885A (zh) | 2018-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10348809B2 (en) | Naming of distributed business transactions | |
US10298469B2 (en) | Automatic asynchronous handoff identification | |
CN111045911B (zh) | 性能测试方法、性能测试装置、存储介质与电子设备 | |
CN115328664B (zh) | 一种消息消费方法、装置、设备及介质 | |
CN107741885B (zh) | 基于cs架构的事务与业务关联方法、关联*** | |
CN113157411A (zh) | 一种基于Celery的可靠可配置任务***及装置 | |
CN111176577B (zh) | 分布式块存储服务命令处理方法、装置、设备及介质 | |
CN108733545B (zh) | 一种压力测试方法及装置 | |
CN111190805A (zh) | 深度学***台的训练日志可视化***、方法及设备 | |
CN114219466A (zh) | 转账信息处理方法、装置、电子设备和存储介质 | |
CN116795256A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
US20200210307A1 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
CN109905459A (zh) | 一种数据传输方法及装置 | |
US8739166B2 (en) | Progress-driven progress information in a service-oriented architecture | |
CN114546677A (zh) | 一种消息执行处理方法、装置、电子设备和存储介质 | |
US10165074B2 (en) | Asynchronous custom exit points | |
CN112183982A (zh) | 一种工作流程创建方法、装置、计算机设备及存储介质 | |
CN110262871A (zh) | 容器应用的容器实例启停方法、装置、计算机设备及存储介质 | |
CN115470017A (zh) | 消息推送方法、装置、电子设备和存储介质 | |
US20150288584A1 (en) | System and method for determining end user timing | |
CN114581053A (zh) | 一种营销任务的执行方法、装置、设备及存储介质 | |
CN118152146A (zh) | 一种跨应用的交互方法、装置、介质和电子设备 | |
CN116567086A (zh) | 一种服务调度方法、装置、设备及介质 | |
CN107707636B (zh) | 一种图片存储方法及终端和计算机可读存储介质 | |
CN115576720A (zh) | Rpc超时时长配置方法、装置、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |