CN113641472A - 分布式应用的异转同实现方法及装置 - Google Patents

分布式应用的异转同实现方法及装置 Download PDF

Info

Publication number
CN113641472A
CN113641472A CN202110913117.9A CN202110913117A CN113641472A CN 113641472 A CN113641472 A CN 113641472A CN 202110913117 A CN202110913117 A CN 202110913117A CN 113641472 A CN113641472 A CN 113641472A
Authority
CN
China
Prior art keywords
service
thread
request
waiting
identity
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
CN202110913117.9A
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.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
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 China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202110913117.9A priority Critical patent/CN113641472A/zh
Publication of CN113641472A publication Critical patent/CN113641472A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/523Mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明涉及分布式技术领域,提供了一种分布式应用的异转同实现方法及装置,该方法包括:第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;接收其他应用服务反馈的受理结果,生成业务身份标识,在等待队列中形成等待线程;该业务身份标识记录有主机号和线程编号;接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;确定线程唤醒方法;利用线程唤醒方法,根据线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。通过形成等待线程,采用阻塞线程的方式,实现了异步响应结果的同步返回,从而避免了循环等待方式带来的内存溢出的风险,进而降低出错概率。

Description

分布式应用的异转同实现方法及装置
技术领域
本发明涉及分布式技术领域,尤其涉及一种分布式应用的异转同实现方法及装置。
背景技术
在分布式应用场景下,存在三种调用方式:同步调用:调用方在调用过程中,持续等待返回结果;异步调用:调用方在调用过程中,不直接等待返回结果,而是执行其他任务,结果返回形式通常为回调函数;异转同:在异步调用过程中,调用方持续等待,直至获得调用结果。
从用户角度出发,对于原本可以实时处理的业务,用户希望点击按钮后就可以得到相应的业务结果,而非被告知业务已受理,然后跳转页面通过查询方式来得知,为了有效提高用户友好度,分布式应用中均采用异转同的调用方式。现有技术中的异转同实现方法一般采用循环等待,但循环等待是非常消耗性能的,循环等待过程中,需要不断访问业务结果存放的内存等共享资源的位置,资源消耗大且会影响其他业务,在业务量大的时候,易造成CPU资源浪费,严重可导致内存溢出,从而导致分布式应用系统瘫痪,所有交易均失败。
发明内容
本发明实施例提供一种分布式应用的异转同实现方法,用以避免内存溢出的风险,降低分布式应用系统出错概率,该方法包括:
第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;所述业务请求报文包含业务流水号;
接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;所述业务身份标识记录有请求线程所在的主机号和请求线程编号;
接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
根据所述业务身份标识,确定线程唤醒方法;
利用所述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
一具体实施例中的分布式应用的异转同实现方法,包括:
预设标识存储数据库,所述标识存储数据库中保存有业务流水号和业务身份标识的对应关系。
具体地,接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程,包括:
接收其他应用服务反馈的受理结果,若受理结果为成功,生成业务身份标识;
将请求线程的线程信息和业务身份标识保存至等待队列,阻塞请求线程,在等待队列中形成等待线程。
具体实施例中,根据所述业务身份标识,确定线程唤醒方法,包括:
拆解所述业务身份标识,得到请求线程所在的主机号;
根据所述主机号,确定该主机的组件号;
根据所述组件号,确定与组件绑定的线程唤醒方法。
相应地,另一具体实施例中的分布式应用的异转同实现方法,还包括:
预设唤醒方法存储数据库,所述唤醒方法存储数据库存储有主机号、组件号和线程唤醒方法的对应关系。
本发明具体实施例中的分布式应用的异转同实现方法,所述等待队列采用数组方式实现。
且所述业务身份标识还记录有请求线程对应的等待线程在等待队列中的数组下标。
相应地,利用所述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,包括:
以数组下标为参数,调用所述线程唤醒方法,在等待队列中唤醒业务身份标识中记录的请求线程编号对应的等待线程。
具体实施例中,将业务处理结果返回给用户,包括:
所述等待线程被唤醒后,根据业务响应报文流水号,获取业务响应报文;
组装业务响应报文,得到业务处理结果,将业务处理结果返回给用户。
本发明具体实施例中,所述第一应用服务包含多个主机;
其中,第一主机用于:
接收用户请求后,请求线程向其他应用服务发送请求报文;
接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;
利用所述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户;
其他任一主机用于:
接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
根据所述业务身份标识,确定线程唤醒方法。
又一具体实施例中的分布式应用的异转同实现方法,还包括:
当第一应用服务接收到其他应用服务的请求线程发送的业务请求报文时,向其他应用服务反馈受理结果;
根据业务请求报文,生成业务响应报文,将所述业务响应报文异步传送给其他应用服务。
具体地,根据业务请求报文,生成业务响应报文,包括:
根据业务请求报文,得到业务流水号;
将业务流水号作为报文头,生成业务响应报文。
本发明实施例还提供一种分布式应用的异转同实现装置,用以避免内存溢出的风险,降低分布式应用系统出错概率,该装置包括:
业务请求模块,用于第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;所述业务请求报文包含业务流水号;
线程等待模块,用于接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;所述业务身份标识记录有请求线程所在的主机号和请求线程编号;
响应报文处理模块,用于接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
线程唤醒方法确定模块,用于根据所述业务身份标识,确定线程唤醒方法;
线程唤醒模块,用于利用所述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
一具体实施例中的分布式应用的异转同实现装置,还包括:
标识存储预设模块,用于预设标识存储数据库,所述标识存储数据库中保存有业务流水号和业务身份标识的对应关系。
具体地,所述线程等待模块,具体用于:
接收其他应用服务反馈的受理结果,若受理结果为成功,生成业务身份标识;
将请求线程的线程信息和业务身份标识保存至等待队列,阻塞请求线程,在等待队列中形成等待线程。
本发明具体实施例中,所述线程唤醒方法确定模块,具体用于:
拆解所述业务身份标识,得到请求线程所在的主机号;
根据所述主机号,确定该主机的组件号;
根据所述组件号,确定与组件绑定的线程唤醒方法。
相应地,另一具体实施例中的分布式应用的异转同实现装置,还包括:
唤醒方法预设模块,用于预设唤醒方法存储数据库,所述唤醒方法存储数据库存储有主机号、组件号和线程唤醒方法的对应关系。
具体实施例中,所述等待队列采用数组方式实现。
所述业务身份标识还记录有请求线程对应的等待线程在等待队列中的数组下标。
相应地,所述线程唤醒模块,具体用于:
以数组下标为参数,调用所述线程唤醒方法,在等待队列中唤醒业务身份标识中记录的请求线程编号对应的等待线程。
具体实施例中,所述线程唤醒模块,具体用于:
所述等待线程被唤醒后,根据业务响应报文流水号,获取业务响应报文;
组装业务响应报文,得到业务处理结果,将业务处理结果返回给用户。
进一步地,又一具体实施例中的分布式应用的异转同实现装置,还包括:业务反馈模块,用于:
当第一应用服务接收到其他应用服务的请求线程发送的业务请求报文时,向其他应用服务反馈受理结果;
根据业务请求报文,生成业务响应报文,将所述业务响应报文异步传送给其他应用服务。
具体地,所述业务反馈模块,具体用于:
根据业务请求报文,得到业务流水号;
将业务流水号作为报文头,生成业务响应报文。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述分布式应用的异转同实现方法。
本发明实施例也提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述分布式应用的异转同实现方法的计算机程序。
本发明实施例中,第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;其中,业务请求报文包含业务流水号;接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;该业务身份标识记录有请求线程所在的主机号和请求线程编号;接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;根据业务身份标识,确定线程唤醒方法;利用线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。通过形成等待线程,采用阻塞线程的方式,实现了异步响应结果的同步返回,从而避免了循环等待方式带来的内存溢出的风险,进而降低分布式应用系统出错概率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中分布式应用的异转同实现方法的示意图。
图2为本发明一具体实施例中分布式应用的异转同实现方法的示意图。
图3为本发明具体实施例中步骤102的实现方法示意图。
图4为本发明具体实施例中步骤104的实现方法示意图。
图5为本发明另一具体实施例中分布式应用的异转同实现方法的示意图。
图6为本发明具体实施例中步骤105的实现方法示意图。
图7为本发明又一具体实施例中根据业务请求报文,生成业务响应报文的实现过程示意图。
图8为本发明具体实例中分布式应用的异转同实现方案的整体架构示意图。
图9为本发明具体实例中分布式应用系统的业务流程示意图。
图10为本发明具体实例中请求线程与处理响应报文线程不在同一台主机的处理过程示意图。
图11为本发明实施例中分布式应用的异转同实现装置的示意图。
图12为本发明一具体实施例中分布式应用的异转同实现装置的示意图。
图13为本发明另一具体实施例中分布式应用的异转同实现装置的示意图。
图14为本发明又一具体实施例中分布式应用的异转同实现装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种分布式应用的异转同实现方法,用以避免内存溢出的风险,降低分布式应用系统出错概率,如图1所示,该方法包括:
步骤101:第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;该业务请求报文包含业务流水号;
步骤102:接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;其中,业务身份标识记录有请求线程所在的主机号和请求线程编号;
步骤103:接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
步骤104:根据该业务身份标识,确定线程唤醒方法;
步骤105:利用上述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
由图1所示流程可以得知,本发明实施例中,第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;其中,业务请求报文包含业务流水号;接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;该业务身份标识记录有请求线程所在的主机号和请求线程编号;接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;根据业务身份标识,确定线程唤醒方法;利用线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。通过形成等待线程,采用阻塞线程的方式,实现了异步响应结果的同步返回,从而避免了循环等待方式带来的内存溢出的风险,进而降低分布式应用系统出错概率。
具体实施时,分布式应用系统中存在多个应用服务,首先第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文。其中,业务请求报文包含业务流水号,业务流水号是该用户请求对应的业务字段,一般存放在业务请求报文的报文头中。
请求线程向其他应用服务发送业务请求报文后,接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程。其中,业务身份标识记录有请求线程所在的主机号和请求线程编号。具体地,业务流水号与业务身份标识存在着一一对应的关系,一具体实施例中,还提供一种分布式应用的异转同实现方法,如图2所示,在图1的基础上,还包括:
步骤201:预设标识存储数据库。
其中,标识存储数据库中保存有业务流水号和业务身份标识的对应关系。
具体地,接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程的实现过程,如图3所示,包括:
步骤301:接收其他应用服务反馈的受理结果,若受理结果为成功,生成业务身份标识;
步骤302:将请求线程的线程信息和业务身份标识保存至等待队列,阻塞请求线程,在等待队列中形成等待线程。
形成等待线程后,接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识。具体地,可通过在预设的标识存储数据库中,根据业务流水号进行查询,得到该业务流水号对应的业务身份标识。
确定对应的业务身份标识后,根据业务身份标识,确定线程唤醒方法。具体方法,如图4所示,包括:
步骤401:拆解业务身份标识,得到请求线程所在的主机号;
步骤402:根据主机号,确定该主机的组件号;
步骤403:根据组件号,确定与组件绑定的线程唤醒方法。
具体实施例中,通过企业级组件技术,为分布式应用系统中的主机注册不同的组件名,组件名与主机号一一对应,通过主机号可以获取该主机的组件号,通过与该组件绑定的唯一方法唤醒主机上的指定线程。因此,另一具体实施例中提供的分布式应用的异转同实现方法,如图5所示,在图1的基础上,还包括:
步骤501:预设唤醒方法存储数据库。
其中,唤醒方法存储数据库存储有主机号、组件号和线程唤醒方法的对应关系。
确定线程唤醒方法后,利用该线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
其中,由于第一应用服务接收其他应用服务异步传回的业务响应报文后,一般将业务响应报文统一存储至数据库中,只记录业务响应报文流水号,因而,将业务处理结果返回给用户,具体实施过程,如图6所示,包括:
步骤601:等待线程被唤醒后,根据业务响应报文流水号,获取业务响应报文;
步骤602:组装业务响应报文,得到业务处理结果,将业务处理结果返回给用户。
具体实施例中,唤醒主机上的指定等待线程,需要通过业务身份标识中记录的请求线程编号,在等待队列中定位等待线程的信息,为了进一步减少查找该线程的时间,具体实施例中的等待队列采用数组方式实现,且业务身份标识还记录有请求线程对应的等待线程在等待队列中的数组下标。
相应地,步骤105的实现过程,包括:以数组下标为参数,调用线程唤醒方法,在等待队列中唤醒业务身份标识中记录的请求线程编号对应的等待线程。
具体实施过程中,第一应用服务包含多个主机,分布式应用的异转同实现方法也并非在同一主机上进行实现。具体地,第一主机用于:
接收用户请求后,请求线程向其他应用服务发送请求报文;
接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;
利用线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户;
其他任一主机用于:
接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
根据业务身份标识,确定线程唤醒方法。
此外,本发明又一具体实施中提供的分布式应用的异转同实现方法,还包括:
当第一应用服务接收到其他应用服务的请求线程发送的业务请求报文时,向其他应用服务反馈受理结果;
根据业务请求报文,生成业务响应报文,将业务响应报文异步传送给其他应用服务。
即第一应用服务作为其他应用服务的业务处理方时,需要接收其他应用服务的请求线程发送的业务请求报文,并反馈受理结果,并向其他应用服务异步传送业务响应报文。换句话说,具体实施例中,第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文时,该其他应用服务用于向其他应用服务反馈受理结果;根据业务请求报文,生成业务响应报文,将业务响应报文异步传送给其他应用服务。
其中,根据业务请求报文,生成业务响应报文的实现过程,如图7所示,包括:
步骤701:根据业务请求报文,得到业务流水号;
步骤702:将业务流水号作为报文头,生成业务响应报文。
以此实现业务流水号在报文中的传递,从而确保业务响应报文能够与业务身份标识相对应,进而在接收业务响应报文后,能够唤醒指定等待线程。
下面给出一具体实例说明本发明实施例如何进行分布式应用的异转同实现。
应用服务A通过应用服务B的公开API发送服务请求,但这个API只能返回成功/失败(以下简称受理结果),真正的处理结果(以下简称业务结果)后续通过另一种通讯方式异步返回。为了提高用户体验,需要将异步返回的业务结果同步返回给客户,即在用户视角受理结果是透明的。在此应用场景下,现有的异转同实现方法包括:
循环等待:应用服务A调用应用服务B一个请求,在没有业务结果之前一直循环查询(可设置超时),业务结果可以在内存中,也可以放在redis缓存或者mysql等数据库中。但循环等待是非常消耗性能的,循环等待过程中,需要不断访问业务结果存放的内存等共享资源的位置,资源消耗大且会影响其他业务,在业务量大的时候,易造成CPU资源浪费,严重可导致内存溢出,从而导致系统瘫痪,所有交易均失败。
Dubbo阻塞线程:应用服务A内部生成一个唯一请求ID,发给应用服务B。若请求成功,应用服务A使用Map存储对应关系,并使业务线程阻塞等待,应用服务A收到异步业务结果,通过ID查找对应请求线程,唤醒的相应的线程。Dubbo阻塞线程是目前较为合理的一种解决思路,但该方法中,请求ID需发送到第三方服务器,具有较强的耦合性。实际应用中,第三方服务需要为不同请求方提供服务,添加专用技术字段涉及改造较大,不太符合现实需求。同时,使用Map存储对应关系,在主机寻找对应线程时,时间复杂度为O(n),时间较长。此外,在多线程应用场景中,Map在进行存储和删除线程信息的过程中,存在指针异常等问题,操作复杂,实际应用中,业务流转过程中存在一定风险。
吸取上述两种方式的经验,本例提供的分布式应用的异转同实现方案希望实现的功能有:
(1)在不影响性能且保证业务流程正确进行的前提下,实现异步响应结果的同步返回;
(2)在分布式应用场景中,请求线程与响应线程大概率不在同一台主机上,在此前提下,实现不同主机上请求线程与响应线程匹配,保证异步响应结果正确的返回给调用方;
(3)在保证异步响应结果正确返回的前提下,降低异步响应转同步过程的时间复杂度,有效较少调用方等待时间,提高用户友好性。
因而设计思路如图8所示,借鉴Dubbo阻塞线程的异转同解决方案,采用阻塞线程的方式,实现异步响应结果的同步返回,有效避免由于循环等待带来的内存溢出等问题,提高系统的健壮性。为保证不同主机上请求线程以及处理异步响应结果的线程相匹配,需保存每台主机上所有等待线程的信息,同时需要设计一个唯一ID来标识一笔业务的请求和响应,为了降低应用服务A及应用服务B之间的耦合性,这个ID需要保存在本分布式应用系统中且需要被所有主机共享。
异步转同步过程中,除了正常的报文流转,最耗时的部分是处理异步业务结果的线程寻找并唤醒相应等待线程的过程,因此需要设计一种时间复杂度为O(1)的方案,尽可能减少用户等待时间。因此设计本具体实例中的等待-通知机制。
具体地,实际运用中,在实现线程的挂起和唤醒的基础上,该机制必须也要支持指定线程的唤醒,否则无法将结果报文正确的返回给客户。通过对比分析,最终选择ReentrantLock+Condition的方式实现等待-通知机制,通过ReentrantLock控制同一主机共享等待队列(存储等待的请求业务报文的线程)的读写,保证每一个等待线程的信息被正确的保存,使用Condition的wait和signal方法实现线程的等待和唤醒。
如图9所示,分布式应用系统中,各主机随机接收用户发起的业务请求,同时随机处理应用服务B返回的业务响应,为了实现请求线程与响应线程的匹配,需要设置一个唯一的ID(业务身份标识),这个ID需要记录请求线程所在的主机以及自身线程号,处理响应报文的线程根据这个ID唤醒指定主机号上的指定线程。
为了让处理响应报文的线程得到ID的信息,需要让请求线程通过报文将ID告知应用服务B,再让应用服务B带回。由于ID信息属于纯技术字段,且应用服务B由于自身的服务属性,不仅仅只为应用服务A提供服务,通过改造报文的形式传递ID是不合理的,因此需要通过将ID与业务字段绑定,这个字段就是业务流水号。
实际应用中,请求线程会生成一个业务流水号NO1存放在报文头,应用服务B发送响应报文时,会将NO1放在报文头中传回,通过NO1与ID的一一对应关系,可以实现ID在请求线程和处理响应报文的线程之间的传递。为了让所有主机都能获得业务流水号与ID的对应关系,本具体实例中使用数据库存储,处理响应报文的线程可以通过业务流水号在数据库中查到等待线程的ID信息。
处理响应报文的线程获得对应等待线程的主机号及线程信息后,需要去指定主机的等待队列获取线程信息并唤醒,最直接的方式就是通过调用该主机上独有的方法去唤醒指定线程。
本具体实例通过企业级组件技术,通过为分布式应用系统中的主机注册不同的组件名,组件名与主机号一一对应,处理响应报文的线程通过ID中主机号可以获取该主机的组件号,通过与该组件绑定的唯一方法唤醒主机上的指定线程。
为了唤醒主机上的指定线程,需要通过ID在等待队列中定位等待线程的信息,为了减少查找该线程的时间,本具体实例采用数组实现等待队列,将存储线程信息的数组下标也存放到ID中,实现查找线程逻辑的时间复杂度为O(1),最大程度减少用户等待时间,提高系统的可用性。
图10展示了请求线程与处理响应报文线程不在同一台主机的处理过程:
(1)应用服务A中主机1接收到用户请求2后,向应用服务B发送请求报文(用户请求2),在得到受理成功的回执后,生成ID,并将自身请求线程信息保存到等待队列中,线程挂起。
(2)应用服务B将业务响应结果异步传回,应用服务A中主机2处理该响应报文,主机2将响应报文存入数据库,并根据响应报文中记录的业务请求流水号,查找ID_2,拆解ID_2得到主机号、线程号、数组下标。根据主机号查找需要调用的组件方法,以响应报文流水号、数组下标为参数调用该方法,唤醒主机1等待线程。
(3)唤醒线程在主机1的等待队列中唤醒指定等待线程,并将响应报文流水号告知该等待线程,等待线程被唤醒后根据响应报文流水号读取数据库,组装响应报文返回给用户。
此外,为了防止响应报文迟迟没有返回而导致的等待队列被占满,本具体实例还设计合理的超时机制。由于使用Condition挂起的线程不支持自动中断等待,因此需要通过程序主动释放资源,本具体实例中,通过在等待队列记录的信息中保存线程挂起的时间来实现超时机制,当新的请求发现等待队列已被占满,遍历该等待队列并清理已超时等待线程。
本具体实例通过组件技术、ReentrantLock+Condition、缓存等技术实现了异步响应报文同步传回的机制,有效减少用户重复提交或重复查询次数,有效提升用户友好度。通过合理设计异转同过程中等待线程与响应线程匹配模式,最大程度降低用户等待时间,保证在用户可等待范围内处理完整个流程。
由此可见,本具体实例中提供的分布式应用的异转同实现方案的优点包括:
由于用户之前希望查询业务结果时,一般是被告知业务已受理,然后跳转页面通过查询方式来得知,用户体验差。本方案从用户角度出发,点击按钮后就可以得到相应的业务结果,能有效提高用户友好度。
从性能角度出发,通过将等待线程阻塞,利用响应报文处理线程唤醒,然后将响应报文随请求报文处理程序的响应返回给用户,实现异步响应报文处理线程与相应的等待线程匹配,避免了轮询带来的内存溢出等风险,能降低系统出差错的概率。
运用组件技术,直接定位等待线程所在主机,避免轮询带来时间上的浪费,采用数组存储等待线程,通过数组下标直接定位等待线程,将时间复杂度控制在O(1),最大程度减少了线程匹配的时间。
上述具体应用的实施仅为举例,其余实施方式不再一一赘述。
基于同一发明构思,本发明实施例还提供一种分布式应用的异转同实现装置,由于分布式应用的异转同实现装置所解决问题的原理与分布式应用的异转同实现方法相似,因此分布式应用的异转同实现装置的实施可以参见分布式应用的异转同实现方法的实施,重复之处不再赘述,具体结构如图11所示:
业务请求模块1101,用于第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;其中,业务请求报文包含业务流水号;
线程等待模块1102,用于接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;该业务身份标识记录有请求线程所在的主机号和请求线程编号;
响应报文处理模块1103,用于接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
线程唤醒方法确定模块1104,用于根据业务身份标识,确定线程唤醒方法;
线程唤醒模块1105,用于利用线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
具体实施例中的分布式应用的异转同实现装置,如图12所示,在图11的基础上,还包括:
标识存储预设模块1201,用于预设标识存储数据库,其中,标识存储数据库中保存有业务流水号和业务身份标识的对应关系。
具体实施例中,线程等待模块1102具体用于:
接收其他应用服务反馈的受理结果,若受理结果为成功,生成业务身份标识;
将请求线程的线程信息和业务身份标识保存至等待队列,阻塞请求线程,在等待队列中形成等待线程。
具体地,线程唤醒方法确定模块1104,具体用于:
拆解业务身份标识,得到请求线程所在的主机号;
根据主机号,确定该主机的组件号;
根据组件号,确定与组件绑定的线程唤醒方法。
相应地,该具体实施例中提供的分布式应用的异转同实现装置,如图13所示,在图11的基础上,还包括:
唤醒方法预设模块1301,用于预设唤醒方法存储数据库,其中,唤醒方法存储数据库存储有主机号、组件号和线程唤醒方法的对应关系。
另一具体实施例中,等待队列采用数组方式实现。业务身份标识还记录有请求线程对应的等待线程在等待队列中的数组下标。相应地,线程唤醒模块1104,具体用于:
以数组下标为参数,调用上述线程唤醒方法,在等待队列中唤醒业务身份标识中记录的请求线程编号对应的等待线程。
具体实施过程中,本发明实施例中的线程唤醒模块1104,具体用于:
等待线程被唤醒后,根据业务响应报文流水号,获取业务响应报文;
组装业务响应报文,得到业务处理结果,将业务处理结果返回给用户。
此外,又一具体实施例中的分布式应用的异转同实现装置,如图14所示,在图11的基础上,还包括:
业务反馈模块1401,用于:
当第一应用服务接收到其他应用服务的请求线程发送的业务请求报文时,向其他应用服务反馈受理结果;
根据业务请求报文,生成业务响应报文,将业务响应报文异步传送给其他应用服务。
具体地,业务反馈模块1401,具体用于:
根据业务请求报文,得到业务流水号;
将业务流水号作为报文头,生成业务响应报文。
本发明实施例还提供一种电子设备,该电子设备能够实现上述实施例中的分布式应用的异转同实现方法中全部步骤,例如,该电子设备能够执行下述步骤:
第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;
接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;
接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
根据业务身份标识,确定线程唤醒方法;
利用线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
从上述描述可知,本申请的实施例提供的电子设备,通过第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;其中,业务请求报文包含业务流水号;接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;该业务身份标识记录有请求线程所在的主机号和请求线程编号;接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;根据业务身份标识,确定线程唤醒方法;利用线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。通过形成等待线程,采用阻塞线程的方式,实现了异步响应结果的同步返回,从而避免了循环等待方式带来的内存溢出的风险,进而降低分布式应用系统出错概率。
本发明的实施例还提供能够实现上述实施例中的分布式应用的异转同实现方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的分布式应用的异转同实现方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;其中,业务请求报文包含业务流水号;
接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;该业务身份标识记录有请求线程所在的主机号和请求线程编号;
接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
根据业务身份标识,确定线程唤醒方法;
利用线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
从上述的描述可知,本发明实施例提供的计算机可读存储介质,通过第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;其中,业务请求报文包含业务流水号;接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;该业务身份标识记录有请求线程所在的主机号和请求线程编号;接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;根据业务身份标识,确定线程唤醒方法;利用线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。通过形成等待线程,采用阻塞线程的方式,实现了异步响应结果的同步返回,从而避免了循环等待方式带来的内存溢出的风险,进而降低分布式应用系统出错概率。
综上所述,本发明实施例提供的分布式应用的异转同实现方法及装置具有如下优点:
第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;其中,业务请求报文包含业务流水号;接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;该业务身份标识记录有请求线程所在的主机号和请求线程编号;接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;根据业务身份标识,确定线程唤醒方法;利用线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。通过形成等待线程,采用阻塞线程的方式,实现了异步响应结果的同步返回,从而避免了循环等待方式带来的内存溢出的风险,进而降低分布式应用系统出错概率。
虽然本发明提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本领域技术人员应明白,本说明书的实施例可提供为方法、装置(系统)或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (22)

1.一种分布式应用的异转同实现方法,其特征在于,包括:
第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;所述业务请求报文包含业务流水号;
接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;所述业务身份标识记录有请求线程所在的主机号和请求线程编号;
接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
根据所述业务身份标识,确定线程唤醒方法;
利用所述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
2.如权利要求1所述的分布式应用的异转同实现方法,其特征在于,还包括:
预设标识存储数据库,所述标识存储数据库中保存有业务流水号和业务身份标识的对应关系。
3.如权利要求1所述的分布式应用的异转同实现方法,其特征在于,接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程,包括:
接收其他应用服务反馈的受理结果,若受理结果为成功,生成业务身份标识;
将请求线程的线程信息和业务身份标识保存至等待队列,阻塞请求线程,在等待队列中形成等待线程。
4.如权利要求1所述的分布式应用的异转同实现方法,其特征在于,根据所述业务身份标识,确定线程唤醒方法,包括:
拆解所述业务身份标识,得到请求线程所在的主机号;
根据所述主机号,确定主机的组件号;
根据所述组件号,确定与组件绑定的线程唤醒方法。
5.如权利要求4所述的分布式应用的异转同实现方法,其特征在于,还包括:
预设唤醒方法存储数据库,所述唤醒方法存储数据库存储有主机号、组件号和线程唤醒方法的对应关系。
6.如权利要求1所述的分布式应用的异转同实现方法,其特征在于,所述等待队列采用数组方式实现。
7.如权利要求6所述的分布式应用的异转同实现方法,其特征在于,所述业务身份标识还记录有请求线程对应的等待线程在等待队列中的数组下标。
8.如权利要求7所述的分布式应用的异转同实现方法,其特征在于,利用所述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,包括:
以数组下标为参数,调用所述线程唤醒方法,在等待队列中唤醒业务身份标识中记录的请求线程编号对应的等待线程。
9.如权利要求1所述的分布式应用的异转同实现方法,其特征在于,将业务处理结果返回给用户,包括:
所述等待线程被唤醒后,根据业务响应报文流水号,获取业务响应报文;
组装业务响应报文,得到业务处理结果,将业务处理结果返回给用户。
10.如权利要求1所述的分布式应用的异转同实现方法,其特征在于,所述第一应用服务包含多个主机;
其中,第一主机用于:
接收用户请求后,请求线程向其他应用服务发送请求报文;
接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;
利用所述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户;
其他任一主机用于:
接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
根据所述业务身份标识,确定线程唤醒方法。
11.如权利要求1所述的分布式应用的异转同实现方法,其特征在于,还包括:
当第一应用服务接收到其他应用服务的请求线程发送的业务请求报文时,向其他应用服务反馈受理结果;
根据业务请求报文,生成业务响应报文,将所述业务响应报文异步传送给其他应用服务。
12.如权利要求11所述的分布式应用的异转同实现方法,其特征在于,根据业务请求报文,生成业务响应报文,包括:
根据业务请求报文,得到业务流水号;
将业务流水号作为报文头,生成业务响应报文。
13.一种分布式应用的异转同实现装置,其特征在于,包括:
业务请求模块,用于第一应用服务接收用户请求后,请求线程向其他应用服务发送业务请求报文;所述业务请求报文包含业务流水号;
线程等待模块,用于接收其他应用服务反馈的受理结果,生成业务身份标识,根据业务身份标识,在等待队列中形成等待线程;所述业务身份标识记录有请求线程所在的主机号和请求线程编号;
响应报文处理模块,用于接收其他应用服务异步传回的业务响应报文,根据业务响应报文中的业务流水号,确定对应的业务身份标识;
线程唤醒方法确定模块,用于根据所述业务身份标识,确定线程唤醒方法;
线程唤醒模块,用于利用所述线程唤醒方法,根据业务身份标识中记录的请求线程编号,在等待队列中唤醒对应的等待线程,将业务处理结果返回给用户。
14.如权利要求13所述的分布式应用的异转同实现装置,其特征在于,还包括:
标识存储预设模块,用于预设标识存储数据库,所述标识存储数据库中保存有业务流水号和业务身份标识的对应关系。
15.如权利要求13所述的分布式应用的异转同实现装置,其特征在于,所述线程等待模块,具体用于:
接收其他应用服务反馈的受理结果,若受理结果为成功,生成业务身份标识;
将请求线程的线程信息和业务身份标识保存至等待队列,阻塞请求线程,在等待队列中形成等待线程。
16.如权利要求13所述的分布式应用的异转同实现装置,其特征在于,所述线程唤醒方法确定模块,具体用于:
拆解所述业务身份标识,得到请求线程所在的主机号;
根据所述主机号,确定主机的组件号;
根据所述组件号,确定与组件绑定的线程唤醒方法。
17.如权利要求16所述的分布式应用的异转同实现装置,其特征在于,还包括:
唤醒方法预设模块,用于预设唤醒方法存储数据库,所述唤醒方法存储数据库存储有主机号、组件号和线程唤醒方法的对应关系。
18.如权利要求13所述的分布式应用的异转同实现装置,其特征在于,所述等待队列采用数组方式实现。
19.如权利要求13所述的分布式应用的异转同实现装置,其特征在于,还包括:业务反馈模块,用于:
当第一应用服务接收到其他应用服务的请求线程发送的业务请求报文时,向其他应用服务反馈受理结果;
根据业务请求报文,生成业务响应报文,将所述业务响应报文异步传送给其他应用服务。
20.如权利要求19所述的分布式应用的异转同实现装置,其特征在于,所述业务反馈模块,具体用于:
根据业务请求报文,得到业务流水号;
将业务流水号作为报文头,生成业务响应报文。
21.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12任一所述方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至12任一所述方法的计算机程序。
CN202110913117.9A 2021-08-10 2021-08-10 分布式应用的异转同实现方法及装置 Pending CN113641472A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110913117.9A CN113641472A (zh) 2021-08-10 2021-08-10 分布式应用的异转同实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110913117.9A CN113641472A (zh) 2021-08-10 2021-08-10 分布式应用的异转同实现方法及装置

Publications (1)

Publication Number Publication Date
CN113641472A true CN113641472A (zh) 2021-11-12

Family

ID=78420442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110913117.9A Pending CN113641472A (zh) 2021-08-10 2021-08-10 分布式应用的异转同实现方法及装置

Country Status (1)

Country Link
CN (1) CN113641472A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115396534A (zh) * 2022-08-24 2022-11-25 中国银行股份有限公司 业务报文处理方法及装置
CN115987917A (zh) * 2023-01-07 2023-04-18 北京沐融信息科技股份有限公司 一种基于消息队列的异步交易转同步方法与系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115396534A (zh) * 2022-08-24 2022-11-25 中国银行股份有限公司 业务报文处理方法及装置
CN115987917A (zh) * 2023-01-07 2023-04-18 北京沐融信息科技股份有限公司 一种基于消息队列的异步交易转同步方法与系统

Similar Documents

Publication Publication Date Title
CN107729139B (zh) 一种并发获取资源的方法和装置
WO2018018611A1 (zh) 一种任务处理方法以及网卡
CN113641472A (zh) 分布式应用的异转同实现方法及装置
CN112306719B (zh) 一种任务调度方法与装置
CN111078436A (zh) 数据处理的方法、装置、设备及存储介质
WO2019219005A1 (zh) 一种数据处理系统及方法
WO2021212965A1 (zh) 一种资源调度方法及相关装置
CN110806928A (zh) 一种作业提交方法及系统
CN112612523A (zh) 一种嵌入式设备驱动系统及方法
WO2024037629A1 (zh) 区块链的数据整合方法、装置、计算机设备及存储介质
CN108228330A (zh) 一种串行化的多进程任务调度方法和装置
CN111611479B (zh) 用于网络资源推荐的数据处理方法及相关装置
CN114398179B (zh) 一种跟踪标识的获取方法、装置、服务器及存储介质
CN105373563B (zh) 数据库切换方法及装置
CN112114983B (zh) 一种基于共享内存的通信方法、装置和设备
CN110955461B (zh) 计算任务的处理方法、装置、系统、服务器和存储介质
CN113761052A (zh) 数据库同步方法和装置
CN111209263A (zh) 数据存储方法、装置、设备及存储介质
CN112783613B (zh) 一种单元调度的方法和装置
CN105760215A (zh) 基于映射规约模型分布式文件系统作业的运行方法
CN113190624A (zh) 基于分布式跨容器的异步转同步调用方法及装置
US20240354314A1 (en) Data processing method and system
CN117093387B (zh) 消息处理方法、装置、电子设备和存储介质
CN116010126B (zh) 一种服务聚合方法、装置及系统
CN112783925B (zh) 分页检索方法和装置

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