CN111638979A - 调用请求的处理方法、装置、电子设备及可读存储介质 - Google Patents
调用请求的处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111638979A CN111638979A CN202010445528.5A CN202010445528A CN111638979A CN 111638979 A CN111638979 A CN 111638979A CN 202010445528 A CN202010445528 A CN 202010445528A CN 111638979 A CN111638979 A CN 111638979A
- Authority
- CN
- China
- Prior art keywords
- ring buffer
- call request
- call
- thread
- writing
- 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
- 238000003672 processing method Methods 0.000 title claims description 8
- 239000000872 buffer Substances 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请实施例提供了一种调用请求的处理方法、装置、电子设备及可读存储介质。该方法包括:当接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区;通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。本方案中,通过将接收到的调用请求存入无锁环形缓冲区,并由处理线程从无锁环形缓冲区获取调用请求并处理,实现了对多个调用请求的并行处理,有效的提高了对调用请求的处理效率,更好的满足了使用需求。
Description
技术领域
本申请涉及网络通讯技术领域,具体而言,本申请涉及一种调用请求的处理方法、装置、电子设备及可读存储介质。
背景技术
远程过程调用,(Remote Procedure Call,RPC)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
目前,在RPC通讯中,服务端一般对客户端发出的调用请求进行同步处理,即需要等当前的调用请求处理完成后才开始处理下一个调用请求,导致服务端对调用请求的处理效率低,无法满足使用需求。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种调用请求的处理方法,该方法包括:
当接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区;
通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。
可选地,将调用请求写入无锁环形缓冲区,包括:
通过第二线程将调用请求写入无锁环形缓冲区。
可选地,若第二线程的数量为一个,通过第二线程将调用请求写入无锁环形缓冲区,包括:
将至少两个终端设备发送的调用请求按照请求顺序加入请求队列;
通过第二线程将请求队中的调用请求依次写入无锁环形缓冲区。
可选地,若第二线程的数量为至少两个,通过第二线程将调用请求写入无锁环形缓冲区,包括:
通过第二线程将请求队中的调用请求并行写入无锁环形缓冲区。
可选地,无锁环形缓冲区包括至少两个,将调用请求写入无锁环形缓冲区,包括:
对至少两个终端设备通发送的调用请求进行负载均衡,将负载均衡后确定出的调用请求写入对应的无锁环形缓冲区。
可选地,来自至少两个终端设备通发送的调用请求在经过负载均衡后被发送给对应的服务器。
第二方面,本申请实施例提供了一种调用请求的处理装置,该装置包括:
写入模块,用于在接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区;
处理模块,用于通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。
可选地,写入模块在将调用请求写入无锁环形缓冲区时,具体用于:
通过第二线程将调用请求写入无锁环形缓冲区。
可选地,若第二线程的数量为一个,写入模块在通过第二线程将调用请求写入无锁环形缓冲区时,具体用于:
将至少两个终端设备发送的调用请求按照请求顺序加入请求队列;
通过第二线程将请求队中的调用请求依次写入无锁环形缓冲区。
可选地,若第二线程的数量为至少两个,写入模块在通过第二线程将调用请求写入无锁环形缓冲区时,具体用于:
通过第二线程将请求队中的调用请求并行写入无锁环形缓冲区。
可选地,无锁环形缓冲区包括至少两个,写入模块在将调用请求写入无锁环形缓冲区时,具体用于:
对至少两个终端设备通发送的调用请求进行负载均衡,将负载均衡后确定出的调用请求写入对应的无锁环形缓冲区。
可选地,来自至少两个终端设备通发送的调用请求在经过负载均衡后被发送给对应的服务器。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式中所示的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式中所示的方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的方案,在接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区,通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。本方案中,通过将接收到的调用请求存入无锁环形缓冲区,并由处理线程从无锁环形缓冲区获取调用请求并处理,实现了对多个调用请求的并行处理,有效的提高了对调用请求的处理效率,更好的满足了使用需求。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种调用请求的处理方法的流程示意图;
图2为本申请实施例提供的一种调用请求的处理方法流程示意图;
图3为本申请实施例提供的一种调用请求的处理装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
目前RPC通讯中,服务端一般对客户端发出的调用请求进行同步处理,而如果采用异步处理的方式,则需要对代码进行加锁处理,导致Java虚拟机(Java Virtual Machine,JVM)频繁进行垃圾回收(Garbage Collection,GC)操作,影响系统的吞吐能力。
本申请实施例提供的调用请求的处理方法、装置、电子设备及可读存储介质,旨在解决现有技术的如上技术问题中的至少一个。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种调用请求的处理方法的流程示意图,如图1所示,该方法主要可以包括:
步骤S110:当接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区;
步骤S120:通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。
本申请实施例中,终端设备可以通过存于本地的客户端存根(Client Stub)与服务器的客户端存根(Client Stub)建立通信,具体而言,可以通过套(socket)接口实现。
本申请实施例中,可以通过创建无锁环形缓冲区来对接收到的多个调用请求进行缓存。无锁环形缓冲区是使用乐观锁的环形缓冲区(Ringbuffer),乐观锁可以通过比较并转换(CompareAndSet,CAS)机制实现。由于无锁环形缓冲区使用的是乐观锁,相较于对代码进行加锁处理的线程同步锁,能够降低避免JVM频繁进行GC操作。
本申请实施例中,将接收到的多个调用请求存入无锁环形缓冲区后,可以由第一线程从无锁环形缓冲区中读取调用请求并进行处理。第一线程可以为多个,多个第一线程构成处理线程池,每个第一线程每次可以对一个调用请求进行处理,多个第一线程可以实现对调用请求的并行处理。
本申请实施例提供的方法,在接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区,通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。本方案中,通过将接收到的调用请求存入无锁环形缓冲区,并由处理线程从无锁环形缓冲区获取调用请求并处理,实现了对多个调用请求的并行处理,有效的提高了对调用请求的处理效率,更好的满足了使用需求。
本申请实施例的一种可选方式中,将调用请求写入无锁环形缓冲区,包括:
通过第二线程将调用请求写入无锁环形缓冲区。
本申请实施例中,第二线程为用于将调用请求写入无锁环形缓冲区的写入线程,第二线程可以为一个,也可以为多个,多个第二线程构成写入线程池。
本申请实施例的一种可选方式中,若第二线程的数量为一个,通过第二线程将调用请求写入无锁环形缓冲区,包括:
将至少两个终端设备通发送的调用请求按照请求顺序加入请求队列;
通过第二线程将请求队中的调用请求依次写入无锁环形缓冲区。
本申请实施例中,若第二线程的数量为一个,在接收到多个调用请求时,可以按照请求的顺序将调用请求加入请求队列,并将从请求队列中的调用请求依次写入无锁环形缓冲区。
本申请实施例的一种可选方式中,若第二线程的数量为至少两个,通过第二线程将调用请求写入无锁环形缓冲区,包括:
通过第二线程将请求队中的调用请求并行写入无锁环形缓冲区。
本申请实施例中,若第二线程的数量为多个,则可以在接收到多个调用请求时,由多个第二线程对调用请求进行并发写入,能够保证更高的写入效率。并发写入的多个调用请求可以随机排列后存入无锁环形缓存区内。
本申请实施例的一种可选方式中,无锁环形缓冲区包括至少两个,将调用请求写入无锁环形缓冲区,包括:
对至少两个终端设备通发送的调用请求进行负载均衡,将负载均衡后确定出的调用请求写入对应的无锁环形缓冲区。
本申请实施例中,服务器内可以预建立多个无锁环形缓冲区。在接收到多个调用请求时,可以根据各无锁环形缓冲区内已存储的调用请求的数量对调用请求进行负载均衡,而后将调用请求分配到各无锁环形缓冲区缓存,避免造成个别无锁环形缓冲区的阻塞,保证对调用请求的快速处理。
本申请实施例的一种可选方式中,来自至少两个终端设备通发送的调用请求在经过负载均衡后被发送给对应的服务器。
本申请实施例中,当一个终端设备对多个服务器发出多个调用请求时,也可以由终端设备进行对待发出的调用请求进行负载均衡,使得多个服务器接收到调用请求数量相对聚恒,避免造成单个服务器的请求量过高,影响处理效率。
作为一个示例,本申请提供的方法具体流程为:
步骤S21,终端设备的客户端程序调用客户端stub,发起远程调用。
步骤S22,客户端stub通过socket网络传输,将调用请求传送给服务端stub。
步骤S23,服务端stub收到调用请求后,由第二线程池中的第二线程对多个调用请求进行处理,将调用请求逐笔写入无锁环形缓冲区。
步骤S24,第一线程池中的第一线程从无锁环形缓冲区中获取调用请求,可多线程同步无锁读取,每个第一线程处理一个调用请求,进行后续的报文处理、逻辑处理,并调起服务端接口。
步骤S25,在调用服务端接口,并得到调用结果后,由第一线程池中的第一线程组装应答报文,并发送给客户端stub。(本步骤在服务端stub内部处理)
步骤S26,客户端stub收到应答报文后,返回给客户端程序,完成整个远程调用过程。
作为一个示例,图2中示出了本申请实施例提供的一种调用请求的处理方法流程示意图。
如图2中所示,请求1、请求2……请求X,即由终端设备发出的多个调用请求。多路复用线程池,即上述写入线程池。多路复用线程池中的线程1、线程2……线程M,即写入线程池内的多个第二线程。报文处理线程池,即上述处理线程池。报文处理线程池中的线程1、线程2……线程N,即处理线程池内的多个第一线程。服务端接口A与服务端接口B即用于将调用请求的处理结果输出的通信接口。
图2中,服务端stub接收到多个调用请求时,由多路复用线程池内的多个线程将多个调用请求并行写入无锁环形缓冲区。报文处理线程池内的多个线程从无锁环形缓冲区中读取调用请求,并实现对调用请求的并行处理。
基于与图1中所示的方法相同的原理,图3示出了本申请实施例提供的一种调用请求的处理装置的结构示意图,如图3所示,该调用请求的处理装置30可以包括:
写入模块310,用于在接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区;
处理模块320,用于通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。
本申请实施例提供的装置,在接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区,通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。本方案中,通过将接收到的调用请求存入无锁环形缓冲区,并由处理线程从无锁环形缓冲区获取调用请求并处理,实现了对多个调用请求的并行处理,有效的提高了对调用请求的处理效率,更好的满足了使用需求。
可选地,写入模块在将调用请求写入无锁环形缓冲区时,具体用于:
通过第二线程将调用请求写入无锁环形缓冲区。
可选地,若第二线程的数量为一个,写入模块在通过第二线程将调用请求写入无锁环形缓冲区时,具体用于:
将至少两个终端设备发送的调用请求按照请求顺序加入请求队列;
通过第二线程将请求队中的调用请求依次写入无锁环形缓冲区。
可选地,若第二线程的数量为至少两个,写入模块在通过第二线程将调用请求写入无锁环形缓冲区时,具体用于:
通过第二线程将请求队中的调用请求并行写入无锁环形缓冲区。
可选地,无锁环形缓冲区包括至少两个,写入模块在将调用请求写入无锁环形缓冲区时,具体用于:
对至少两个终端设备通发送的调用请求进行负载均衡,将负载均衡后确定出的调用请求写入对应的无锁环形缓冲区。
可选地,来自至少两个终端设备通发送的调用请求在经过负载均衡后被发送给对应的服务器。
可以理解的是,本实施例中的调用请求的处理装置的上述各模块具有实现图1中所示的实施例中的调用请求的处理方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述调用请求的处理装置的各模块的功能描述具体可以参见图1中所示实施例中的调用请求的处理方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的调用请求的处理方法。
作为一个示例,图4示出了本申请实施例所适用的一种电子设备的结构示意图,如图4所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的调用请求的处理方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,在接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区,通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。本方案中,通过将接收到的调用请求存入无锁环形缓冲区,并由处理线程从无锁环形缓冲区获取调用请求并处理,实现了对多个调用请求的并行处理,有效的提高了对调用请求的处理效率,更好的满足了使用需求。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的调用请求的处理方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,在接收到来自至少两个终端设备通发送的调用请求时,将调用请求写入无锁环形缓冲区,通过第一线程从无锁环形缓冲区中读取调用请求,并处理调用请求。本方案中,通过将接收到的调用请求存入无锁环形缓冲区,并由处理线程从无锁环形缓冲区获取调用请求并处理,实现了对多个调用请求的并行处理,有效的提高了对调用请求的处理效率,更好的满足了使用需求。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种调用请求的处理方法,其特征在于,包括:
当接收到来自至少两个终端设备通发送的调用请求时,将所述调用请求写入无锁环形缓冲区;
通过第一线程从所述无锁环形缓冲区中读取所述调用请求,并处理所述调用请求。
2.根据权利要求1所述的方法,其特征在于,所述将所述调用请求写入无锁环形缓冲区,包括:
通过第二线程将所述调用请求写入无锁环形缓冲区。
3.根据权利要求2述的方法,其特征在于,若所述第二线程的数量为一个,所述通过第二线程将所述调用请求写入无锁环形缓冲区,包括:
将所述至少两个终端设备发送的调用请求按照请求顺序加入请求队列;
通过所述第二线程将所述请求队中的调用请求依次写入无锁环形缓冲区。
4.根据权利要求2述的方法,其特征在于,若所述第二线程的数量为至少两个,所述通过第二线程将所述调用请求写入无锁环形缓冲区,包括:
通过所述第二线程将所述请求队中的调用请求并行写入无锁环形缓冲区。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述无锁环形缓冲区包括至少两个,所述将所述调用请求写入无锁环形缓冲区,包括:
对所述至少两个终端设备通发送的调用请求进行负载均衡,将负载均衡后确定出的调用请求写入对应的无锁环形缓冲区。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述来自至少两个终端设备通发送的调用请求在经过负载均衡后被发送给对应的服务器。
7.一种调用请求的处理装置,其特征在于,包括:
写入模块,用于在接收到来自至少两个终端设备通发送的调用请求时,将所述调用请求写入无锁环形缓冲区;
处理模块,用于通过第一线程从所述无锁环形缓冲区中读取所述调用请求,并处理所述调用请求。
8.根据权利要求7所述的装置,其特征在于,所述写入模块在将所述调用请求写入无锁环形缓冲区时,具体用于:
通过第二线程将所述调用请求写入无锁环形缓冲区。
9.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010445528.5A CN111638979A (zh) | 2020-05-24 | 2020-05-24 | 调用请求的处理方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010445528.5A CN111638979A (zh) | 2020-05-24 | 2020-05-24 | 调用请求的处理方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111638979A true CN111638979A (zh) | 2020-09-08 |
Family
ID=72332770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010445528.5A Pending CN111638979A (zh) | 2020-05-24 | 2020-05-24 | 调用请求的处理方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111638979A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148498A (zh) * | 2020-09-30 | 2020-12-29 | 平安普惠企业管理有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN114490011A (zh) * | 2020-11-12 | 2022-05-13 | 上海交通大学 | N体模拟在异构架构的并行加速实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161537A (zh) * | 2015-04-10 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 远程过程调用的处理方法、装置、系统及电子设备 |
CN109857545A (zh) * | 2018-12-29 | 2019-06-07 | 华为技术有限公司 | 一种数据传输方法及装置 |
-
2020
- 2020-05-24 CN CN202010445528.5A patent/CN111638979A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161537A (zh) * | 2015-04-10 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 远程过程调用的处理方法、装置、系统及电子设备 |
CN109857545A (zh) * | 2018-12-29 | 2019-06-07 | 华为技术有限公司 | 一种数据传输方法及装置 |
Non-Patent Citations (1)
Title |
---|
王宏志 等: "《大数据管理系统原理与技术》", vol. 1, 机械工业出版社, pages: 184 - 186 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148498A (zh) * | 2020-09-30 | 2020-12-29 | 平安普惠企业管理有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN114490011A (zh) * | 2020-11-12 | 2022-05-13 | 上海交通大学 | N体模拟在异构架构的并行加速实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
CN108628684B (zh) | 一种基于dpdk的报文处理方法及计算机设备 | |
US8806506B2 (en) | System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture | |
US9195527B2 (en) | System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture | |
US7194569B1 (en) | Method of re-formatting data | |
CN111917846A (zh) | 一种Kafka集群切换方法、装置、系统、电子设备及可读存储介质 | |
CN110134534B (zh) | 基于nio针对大数据分布式系统进行消息处理优化的系统及方法 | |
CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
CN107124469B (zh) | 一种集群节点通信方法及系统 | |
CN111638979A (zh) | 调用请求的处理方法、装置、电子设备及可读存储介质 | |
CN110519388B (zh) | 区块链请求的处理方法、装置、电子设备及可读存储介质 | |
CN111200606A (zh) | 深度学习模型任务处理方法、系统、服务器及存储介质 | |
CN113515320A (zh) | 一种硬件加速处理方法、装置以及服务器 | |
JP6088528B2 (ja) | トランザクションミドルウェアマシン環境においてシングルポイントボトルネックを防止するためのシステムおよび方法 | |
CN111913815A (zh) | 调用请求的处理方法、装置、电子设备及可读存储介质 | |
CN117370046A (zh) | 进程间通信方法、系统、设备和存储介质 | |
CN111899087A (zh) | 数据的提供方法、装置、电子设备及计算机可读存储介质 | |
CN116578245A (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN110955461A (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
CN115934292A (zh) | 微服务应用的调用方法、装置及设备 | |
CN114595080A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US6865579B1 (en) | Simplified thread control block design | |
KR20150048028A (ko) | 데이터 전송 관리 방법 | |
CN111786965B (zh) | Rpc报文的处理方法、装置、电子设备及可读存储介质 | |
CN110968370B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200908 |