CN113220485B - 远程过程调用服务的处理方法、装置和可读存储介质 - Google Patents

远程过程调用服务的处理方法、装置和可读存储介质 Download PDF

Info

Publication number
CN113220485B
CN113220485B CN202110573567.8A CN202110573567A CN113220485B CN 113220485 B CN113220485 B CN 113220485B CN 202110573567 A CN202110573567 A CN 202110573567A CN 113220485 B CN113220485 B CN 113220485B
Authority
CN
China
Prior art keywords
rpc
target
service
call
local cache
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
Application number
CN202110573567.8A
Other languages
English (en)
Other versions
CN113220485A (zh
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.)
Kingdee Software China Co Ltd
Original Assignee
Kingdee Software China 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 Kingdee Software China Co Ltd filed Critical Kingdee Software China Co Ltd
Priority to CN202110573567.8A priority Critical patent/CN113220485B/zh
Publication of CN113220485A publication Critical patent/CN113220485A/zh
Application granted granted Critical
Publication of CN113220485B publication Critical patent/CN113220485B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/542Event management; Broadcasting; Multicasting; Notifications
    • 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/546Message passing systems or structures, e.g. queues

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

本申请实施例提供了一种远程过程调用服务的处理方法及相关设备,避免了由于集群中服务器数量增多带来的RPC调用次数增多,而导致的系统性能下降,响应速度和吞吐量降低等问题。该方法包括:获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求,所述N为大于或等于2的整数;将调用请求封装为目标RPC消息;将目标RPC消息通过消息中间件广播至N个服务器,以使得第二服务器在确定目标本地缓存中未存储有与目标RPC消息所对应的目标RPC服务时,将目标RPC服务缓存至目标本地缓存,并调用目标RPC服务执行相应的操作,得到执行结果,返回所述执行结果;接收执行结果。

Description

远程过程调用服务的处理方法、装置和可读存储介质
技术领域
本申请涉及通信领域,尤其涉及一种远程过程调用服务的处理方法、装置和可读存储介质。
背景技术
分布式服务或者微服务架构的应用系统,通过会形成服务集群,并且采用负载均衡策略。分布式服务或微服务架构中的服务间通信方式通常采用远程过程调用(RemoteProcedure Call,RPC)或表现层状态转移的网络接口(REpresentational State TransferAPI,RestAPI)等点对点的同步方式,其中,API为Application Programming Interface的简写,指的是应用程序接口。
但是,当需要RPC调用一个服务集群中的多个服务时,只能一个一个服务的去调用,无法做到服务请求端一次请求,调用整个集群服务。这样针对服务集群的RPC服务调用,需要根据集群数量来产生对应的RPC服务,集群数量越多,RPC调用次数越多,无疑会导致系统性能下降,响应速度和吞吐量降低。
发明内容
本申请实施例第一方面提供一种远程过程调用服务的处理方法,包括:
获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求,其中,所述N为大于或等于2的整数;
将所述调用请求进行封装,得到目标RPC消息;
将所述目标RPC消息通过消息中间件广播至所述N个服务器,以使得第二服务器判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,且在确定所述目标本地缓存中未存储有与所述目标RPC消息所对应的目标RPC服务时,将所述目标RPC服务缓存至所述目标本地缓存,并调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果,所述第二服务器为所述N个服务器中的任意一个服务器,所述目标本地缓存为所述第二服务器所对应的本地缓存;
接收所述执行结果。
一种可能的设计中,所述将所述RPC调用请求进行封装,得到目标RPC消息包括:
获取所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数;
将所述针对所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数进行封装,得到所述目标RPC消息。
本申请实施例第二方面提供了一种远程过程调用服务的处理方法,包括:
监听第一服务器通过消息中间件广播的目标远程过程调用RPC消息,所述目标RPC消息为所述第一服务器对针对于第二服务集群中N个服务器所对应的RPC调用请求进行封装得到的,其中,所述N为大于或等于2的整数,所述第一服务器为第一服务集群中的任意一个服务器;
判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,所述目标本地缓存为所述N个服务器中的任意一个服务器所对应的本地缓存;
若所述目标本地缓存中未存储有所述目标RPC服务,则将所述目标RPC服务缓存至所述目标本地缓存;
调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果。
一种可能的设计中,所述方法还包括:
若所述目标本地缓存中存在与所述RPC调用消息所对应的目标RPC服务时,则从所目标本地缓存中获取所述目标RPC服务;
调用所述目标RPC服务执行相应的操作,得到执行结果;
向所述第一服务器返回所述执行结果。
一种可能的设计中,所述目标RPC消息包括所述N个服务器所对应RPC服务的RPC调用服务名、调用方法以及调用参数,所述判断目标本地缓存中是否存在与所述目标RPC消息所对应的目标RPC服务包括:
判断所述目标本地缓存中是否存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务;
若所述目标本地缓存中存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务,则确定所述目标本地缓存中存在所述目标RPC服务;
若所述目标本地缓存中未存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务,则确定所述目标本地缓存中不存在所述目标RPC服务。
本申请第三方面提供了一种远程过程调用服务处理装置,包括:
获取单元,用于获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求,其中,所述N为大于或等于2的整数;
封装单元,用于将所述调用请求进行封装,得到目标RPC消息;
广播单元,用于将所述目标RPC消息通过消息中间件广播至所述N个服务器,以使得第二服务器判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,且在确定所述目标本地缓存中未存储有与所述目标RPC消息所对应的目标RPC服务时,将所述目标RPC服务缓存至所述目标本地缓存,并调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果,所述第二服务器为所述N个服务器中的任意一个服务器,所述目标本地缓存为所述第二服务器所对应的本地缓存;
接收单元,用于接收所述执行结果。
一种可能的设计中,所述封装单元具体用于:
获取所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数;
将所述针对所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数进行封装,得到所述目标RPC消息。
本申请实施例第四方面提供了一种远程过程调用服务处理装置,包括:
监听单元,用于监听第一服务器通过消息中间件广播的目标远程过程调用RPC消息,所述目标RPC消息为所述第一服务器对针对于第二服务集群中N个服务器所对应的RPC调用请求进行封装得到的,其中,所述N为大于或等于2的整数,所述第一服务器为第一服务集群中的任意一个服务器;
判断单元,用于判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,所述目标本地缓存为所述N个服务器中的任意一个服务器所对应的本地缓存;
缓存单元,用于若所述目标本地缓存中未存储有所述目标RPC服务,则将所述目标RPC服务缓存至所述目标本地缓存;
执行单元,用于调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果。
一种可能的设计中,所述执行单元,还用于:
若所述目标本地缓存中存在与所述RPC调用消息所对应的目标RPC服务时,则从所目标本地缓存中获取所述目标RPC服务;
调用所述目标RPC服务执行相应的操作,得到执行结果;
向所述第一服务器返回所述执行结果。
一种可能的设计中,所述目标RPC消息包括所述N个服务器所对应RPC服务的RPC调用服务名、调用方法以及调用参数,所述判断单元具体用于:
判断所述目标本地缓存中是否存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务;
若所述目标本地缓存中存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务,则确定所述目标本地缓存中存在所述目标RPC服务;
若所述目标本地缓存中未存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务,则确定所述目标本地缓存中不存在所述目标RPC服务。
本申请实施例第五方面提供了一种计算机设备,其包括至少一个连接的处理器、存储器和收发器,其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行上述各方面所述的远程过程调用服务的处理方法的步骤。
本申请实施例第六方面提供了一种计算机存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的远程过程调用服务的处理方法的步骤。
综上所述,可以看出,本申请提供的实施例中,第一服务器可以获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求,并将该调用请求封装为目标RPC消息,将该目标RPC消息广播至N个服务器,以使得该N个服务器中的任意一个服务器根据该目标RPC消息执行相应的操作,并返回执行结果。由此,在针对服务集群的RPC服务调用,无需根据集群数量来产生对应的RPC服务,只需要对针对集群中N个服务器的RPC服务的调用请求进行封装,并广播封装后的目标RPC消息即可,避免了由于集群中服务器数量增多带来的RPC调用次数增多,而导致的系统性能下降,响应速度和吞吐量降低等问题。
附图说明
图1为本申请实施例提供的远程过程调用服务处理系统的架构图:
图2为本申请实施例提供的远程过程调用服务的处理方法的一个实施例示意图;
图3为本申请实施例提供的远程过程调用服务的处理方法的另一实施例示意图;
图4为本申请实施例提供的远程过程调用服务的处理方法的另一实施例示意图;
图5为本申请实施例提供的远程过程调用服务的处理方法的另一实施例示意图;
图6为本申请实施例提供的远程过程调用服务处理装置的一个实施例示意图;
图7为本申请实施例提供的远程过程调用服务处理装置的另一虚拟示意图;
图8为本申请实施例提供的服务器的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征向量可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
首先对本申请涉及的名词进行说明:
集群,集群是指由多台服务器组成一组共同服务客户端请求的服务器群,集群内的每一台服务器可视为等同的,任意一台服务器可以单独对用户请求进行响应,一般使用集群来水平提高系统的响应能力。
远程过程调用(Remote Procedure Call,RPC),指的是一个节点请求另一个节点提供的服务,在分布式系统中的系统环境建设和应用程序设计中有着广泛的应用。
消息队列(Message Queue,MQ),是基础数据结构中“先进先出”的一种数据结构。
消息中间件,是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统,有RabbitMQ、RocketMQ、Kafka、ActiveMQ等消息中间件。
本地缓存,指的将本地的物理内存划分出一部分空间用来缓冲回写到服务器的数据。
下面结合图1以及图2对本申请实施例提供的远程过程调用服务处理系统进行说明,请参阅图1,图1为本申请实施例提供的远程过程调用服务处理系统的架构图,包括:
集群服务A101,消息中间件102以及集群服务B103,集群服务A101以及集群服务B103均由多台服务器(server)组成服务集群,Server A(Server A为集群服务A101中的任意一台服务器)将RPC调用集群服务B103中多台Server B的请求封装成MQ消息,该MQ消息包括RPC调用服务名(ClassName)、调用方法(Method)以及调用参数(Params),通过消息中间件102(该消息中间件可以是RabbitMQ、RocketMQ、Kafka以及ActiveMQ中的任意一个)的广播模式,广播到集群服务B103中多台Server B,在Server B收到广播消息后,通过反射RPC服务进行调用。下面结合图2对本申请实施例提供的远程过程调用服务的处理方法的进行说明:
请参阅图2,图2为本申请实施例提供的远程过程调用服务的处理方法的一个实施例示意图,Server A201将RPC调用多台Server B203的请求封装成MQ消息,该MQ消息包括RPC调用服务名(ClassName)、调用方法(Method)以及调用参数(Params),通过消息中间件202的广播模式,广播至多台Server B203,Server B本地会缓存一份已调用过的RPC服务,Server B收到广播消息后,可以根据RPC调用服务名以及调用方法与本地缓存中缓存的RPC服务进行匹配,若匹配不成功,则说明该RPC调用服务为首次调用,则将其缓存后,执行该RPC调用服务,并返回执行结果,若匹配成功,则说明该RPC调用服务不为首次调用,则从本地缓存中获取该RPC调用服务,并执行,返回执行结果。这样,通过广播的方式广播RPC服务,且通过反射机制调用RPC服务,无需根据集群数量来产生对应的RPC服务,且在二次调用时直接从本地缓存中获取相应的RPC服务,不会影响系统的性能、响应速度以及吞吐量。
请参阅图3,图3为本申请实施例提供的远程过程调用服务的处理方法的另一实施例示意图,包括:
301、获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求。
本实施例中,第一服务器获取针对于第二服务集群中N个服务器所对应的RPC服务的调用请求,其中,N为大于或等于2的整数,该RPC服务的调用请求包括N个服务所对应的RPC服务的RPC调用服务名、调用方法及调用参数。可以理解的是,该第一服务器包含于第一服务集群,该第一服务集群中包含多个服务器。
302、将调用请求进行封装,得到目标RPC消息。
本实施例中,第一服务器在获取到针对与N个服务器所对应的RPC服务的调用请求之后,可以将N个服务所对应的RPC调用服务名、调用方法以及调用参数进行封装,得到目标RPC消息,也就是说,第一服务器可以将针对于N个服务器所对应的RPC调用请求中的RPC调用服务名(ClassName)、调用方法(Method)以及调用参数(Params)进行组装,得到目标RPC消息。此处具体不限定组装调用请求的方式,只要能将该调用请求进行组装,得到将组装后的目标RPC消息通过消息中间件的进行广播即可。
303、将目标RPC消息通过消息中间件广播至N个服务器。
本实施例中,第一服务器在将调用请求中的信息进行组装得到目标RPC消息之后,可以通过消息中间件将目标RPC消息进行广播,第二服务集群中N个活跃的服务器均可以接收到该目标RPC消息,第二服务器可以判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,且在确定目标本地缓存中未存储有与目标RPC消息所对应的目标RPC服务时,将目标RPC服务缓存至目标本地缓存,并调用目标RPC服务执行相应的操作,得到执行结果,并返回执行结果,其中,该第二服务器为N个服务器中的任意一个服务器,目标本地缓存为第二服务器所对应的本地缓存。
304、接收执行结果。
本实施例中,第一服务器可以接收第二服务器返回的针对于目标RPC服务器所对应的执行结果。可以理解的是,第一服务器在接收到该执行结果之后,可以将该执行结果进行展示,方便用户查看。
综上所述,可以看出,本申请提供的实施例中,第一服务器可以获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求,并将该调用请求封装为目标RPC消息,将该目标RPC消息广播至N个服务器,以使得该N个服务器中的任意一个服务器根据该目标RPC消息执行相应的操作,并返回执行结果。由此,在针对服务集群的RPC服务调用,无需根据集群数量来产生对应的RPC服务,只需要对针对集群中N个服务器的RPC服务的调用请求进行封装,并广播封装后的目标RPC消息即可,避免了由于集群中服务器数量增多带来的RPC调用次数增多,而导致的系统性能下降,响应速度和吞吐量降低等问题。
上面从第一服务器的角度对本申请实施例提供的远程过程调用服务的处理方法进行说明,下面从第二服务器的角度对本申请实施例提供的远程过程调用服务的处理方法进行说明。
请参阅图4,图4为本申请实施例提供的远程过程调用服务的处理方法的另一实施例示意图,包括:
401、监听第一服务器通过消息中间件广播的目标远程过程调用RPC消息。
本实施例中,第二服务器可以启动监听模式,进而可以监听第一服务器通过消息中间件广播的目标RPC消息,该目标RPC消息为第一服务器对针对于第二服务集群中N个服务器所对应的RPC调用请求进行封装得到的,该RPC调用请求中包括所对应RPC服务的RPC调用服务名、调用方法以及调用参数,其中,N为大于或等于2的整数,第一服务器为第一服务集群中的任意一个服务器,该第二服务器为N个服务器中的任意一个服务器。
402、判断目标本地缓存中是否存储有与目标RPC消息所对应的目标RPC服务器,若否,则执行步骤403,若是,则执行步骤405。
本实施例中,第二服务器在监听到目标RPC消息时,可以判断目标本地缓存中是否存储有与目标RPC消息所对应的目标RPC服务,目标本地缓存为第二服务器所对应的本地缓存。具体的,第二服务器可以根据目标RPC消息中的RPC调用服务名以及调用方法与目标本地缓存中的各个RPC服务的RPC调用服务名以及调用方法进行匹配,若目标本地缓存中存储有与目标RPC消息中的RPC调用服务名以及调用请求相匹配的RPC服务,则确定目标本地缓存中存在目标RPC服务,执行步骤405,反之,则确定目标本地缓存中不存在目标RPC服务,执行步骤403。
403、将目标RPC服务缓存至目标本地缓存。
本实施例中,第二服务器在确定目标本地缓存中不存在目标RPC服务时,可以通过反射机制将目标RPC服务缓存至目标本地缓存。
404、调用目标RPC服务执行相应的操作,得到执行结果,并返回执行结果。
本实施例中,第二服务器在将目标RPC服务缓存至目标本地缓存之后,可以调用目标RPC服务执行相应的操作,得到执行结果,并返回执行结果指第一服务器,以使得第一服务器将该执行结果进行展示,方便用户查看。
405、执行其他操作。
本实施例中,第二服务器在确定目标本地缓存中存储有与目标RPC消息所对应的目标RPC服务时,可以直接从目标本地缓存中获取该目标RPC服务器,并调用该目标RPC服务执行相应的操作,得到执行结果,并返回该执行结果至第一服务器。
综上所述,可以看出,本申请提供的实施例中,第二服务器监听第一服务器广播的目标RPC消息,第二集群中只要在线的服务器都能接收到第一服务器广播的目标RPC消息,即可以避免因第二集群中的个别服务器宕机等故障导致阻塞流程,同时通过反射机制来进行直接RPC调用,在首次调用RPC服务时,将该RPC服务缓存指本地缓存,后续再次调用时,可以直接从本地缓存中获取调用即可,避免了由于集群中服务器数量增多带来的RPC调用次数增多,而导致的系统性能下降,响应速度和吞吐量降低等问题。
请参阅图5,图5为本申请实施例提供的远程过程调用服务的处理方法的另一实施例示意图,包括:
501、第一服务器获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求。
502、第一服务器将调用请求进行封装,得到目标RPC消息。
503、第一服务器将目标RPC消息通过消息中间件进行广播。
需要说明的是,步骤501至步骤503与图3中的步骤301至303类似,上述图3中已经进行了详细说明,具体此处不再赘述。
504、第二服务器监听第一服务器通过消息中间件广播的目标RPC消息。
505、第二服务器判断目标本地缓存中是否存储有与目标RPC消息所对应的目标RPC服务。
506、若目标本地缓存中未存储有所目标RPC服务,则第二服务器将目标RPC服务缓存至目标本地缓存;
507、第二服务器调用目标RPC服务执行相应的操作,得到执行结果,并返回执行结果。
需要说明的是,步骤504至步骤507与图4中的步骤401至步骤404类似,上述图4中已经进行了详细说明,具体此处不再赘述。
综上所述,可以看出,本申请提供的实施例中,第一服务器将针对于第二服务集群中N个服务器所对应的RPC服务的调用请求进行封装,得到目标RPC消息后,将该目标RPC消息进行广播,第二服务器监听第一服务器广播的目标RPC消息,由此,该第二集群中只要在线的服务器都能接收到第一服务器广播的目标RPC消息,即可以避免因第二集群中的个别服务器宕机等故障导致阻塞流程,同时第二服务器通过反射机制来进行直接RPC调用,在首次调用RPC服务时,将该RPC服务缓存指本地缓存,后续再次调用时,可以直接从本地缓存中获取调用即可,避免了由于集群中服务器数量增多带来的RPC调用次数增多,而导致的系统性能下降,响应速度和吞吐量降低等问题。
上面从远程过程调用服务的处理方法的角度对本申请实施例进行描述,下面从远程过程调用服务处理装置的角度对本申请实施例进行描述。
请参阅图6,本申请实施例中提供了一种远程过程调用服务处理装置的一个实施例示意图,该远程过程调用服务处理装置600包括:
获取单元601,用于获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求,其中,所述N为大于或等于2的整数;
封装单元602,用于将所述调用请求进行封装,得到目标RPC消息;
广播单元603,用于将所述目标RPC消息通过消息中间件广播至所述N个服务器,以使得第二服务器判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,且在确定所述目标本地缓存中未存储有与所述目标RPC消息所对应的目标RPC服务时,将所述目标RPC服务缓存至所述目标本地缓存,并调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果,所述第二服务器为所述N个服务器中的任意一个服务器,所述目标本地缓存为所述第二服务器所对应的本地缓存;
接收单元604,用于接收所述执行结果。
一种可能的设计中,所述封装单元602具体用于:
获取所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数;
将所述针对所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数进行封装,得到所述目标RPC消息。
请参阅图7,图7为本申请实施例提供的一种远程过程调用服务处理装置700的另一实施例示意图,包括:
监听单元701,用于监听第一服务器通过消息中间件广播的目标远程过程调用RPC消息,所述目标RPC消息为所述第一服务器对针对于第二服务集群中N个服务器所对应的RPC调用请求进行封装得到的,其中,所述N为大于或等于2的整数,所述第一服务器为第一服务集群中的任意一个服务器;
判断单元702,用于判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,所述目标本地缓存为所述N个服务器中的任意一个服务器所对应的本地缓存;
缓存单元703,用于若所述目标本地缓存中未存储有所述目标RPC服务,则将所述目标RPC服务缓存至所述目标本地缓存;
执行单元704,用于调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果。
一种可能的设计中,所述执行单元704,还用于:
若所述目标本地缓存中存在与所述RPC调用消息所对应的目标RPC服务时,则从所目标本地缓存中获取所述目标RPC服务;
调用所述目标RPC服务执行相应的操作,得到执行结果;
向所述第一服务器返回所述执行结果。
一种可能的设计中,所述目标RPC消息包括所述N个服务器所对应RPC服务的RPC调用服务名、调用方法以及调用参数,所述判断单元702具体用于:
判断所述目标本地缓存中是否存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务;
若所述目标本地缓存中存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务,则确定所述目标本地缓存中存在所述目标RPC服务;
若所述目标本地缓存中未存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务,则确定所述目标本地缓存中不存在所述目标RPC服务。
本申请实施例还提供了另一种远程过程调用服务处理装置,该游戏画面显示装置部署于服务器。为了便于理解,请参阅图8,图8为本申请实施例提供的一种服务器结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由第一服务器以及第二服务器所执行的步骤可以基于该图8所示的服务器结构。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例中与远程过程调用服务处理装置相关的方法流程。对应的,该计算机可以为上述远程过程调用服务处理装置。
本申请实施例还提供了一种计算机程序或包括计算机程序的一种计算机程序产品,该计算机程序在某一计算机上执行时,将会使所述计算机实现上述任一方法实施例中与远程过程调用服务处理装置相关的方法流程。对应的,该计算机可以为上述的远程过程调用服务处理装置。
在上述图3至图5对应的实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
应理解,本申请中提及的处理器可以是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请中的处理器的数量可以是一个,也可以是多个,具体可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。本申请实施例中的存储器的数量可以是一个,也可以是多个,具体可以根据实际应用场景调整,此处仅仅是示例性说明,并不作限定。
还需要说明的是,当远程过程调用服务处理装置包括处理器(或处理单元)与存储器时,本申请中的处理器可以是与存储器集成在一起的,也可以是处理器与存储器通过接口连接,具体可以根据实际应用场景调整,并不作限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者其他设备等)执行本申请图3至图5所对应的实施例所述方法的全部或部分步骤。
应理解,本申请中提及的存储介质或存储器可以包括易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (8)

1.一种远程过程调用服务的处理方法,其特征在于,包括:
获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求,其中,所述N为大于或等于2的整数;
将所述调用请求进行封装,得到目标RPC消息;
将所述目标RPC消息通过消息中间件广播至所述N个服务器,以使得第二服务器判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,且在确定所述目标本地缓存中未存储有与所述目标RPC消息所对应的目标RPC服务时,将所述目标RPC服务缓存至所述目标本地缓存,并调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果,所述第二服务器为所述N个服务器中的任意一个服务器,所述目标本地缓存为所述第二服务器所对应的本地缓存;
接收所述执行结果;
其中,所述将所述RPC调用请求进行封装,得到目标RPC消息包括:
获取所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数;
将所述针对所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数进行封装,得到所述目标RPC消息。
2.一种远程过程调用服务的处理方法,其特征在于,包括:
监听第一服务器通过消息中间件广播的目标远程过程调用RPC消息,所述目标RPC消息为所述第一服务器对针对于第二服务集群中N个服务器所对应的RPC调用请求进行封装得到的,其中,所述N为大于或等于2的整数,所述第一服务器为第一服务集群中的任意一个服务器;
判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,所述目标本地缓存为所述N个服务器中的任意一个服务器所对应的本地缓存;
若所述目标本地缓存中未存储有所述目标RPC服务,则将所述目标RPC服务缓存至所述目标本地缓存;
调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果;
其中,所述目标RPC消息为所述第一服务器对针对于第二服务集群中N个服务器所对应的RPC调用请求进行封装得到的,包括:
获取所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数;
将所述针对所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数进行封装,得到所述目标RPC消息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述目标本地缓存中存在与所述RPC调用消息所对应的目标RPC服务时,则从所目标本地缓存中获取所述目标RPC服务;
调用所述目标RPC服务执行相应的操作,得到执行结果;
向所述第一服务器返回所述执行结果。
4.根据权利要求2所述的方法,其特征在于,所述目标RPC消息包括所述N个服务器所对应RPC服务的RPC调用服务名、调用方法以及调用参数,所述判断目标本地缓存中是否存在与所述目标RPC消息所对应的目标RPC服务包括:
判断所述目标本地缓存中是否存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务;
若所述目标本地缓存中存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务,则确定所述目标本地缓存中存在所述目标RPC服务;
若所述目标本地缓存中未存储有与所述RPC调用服务名和所述调用方法所对应的RPC服务,则确定所述目标本地缓存中不存在所述目标RPC服务。
5.一种远程过程调用服务处理装置,其特征在于,包括:
获取单元,用于获取针对于第二服务集群中N个服务器所对应的远程过程调用RPC服务的调用请求,其中,所述N为大于或等于2的整数;
封装单元,用于将所述调用请求进行封装,得到目标RPC消息;
广播单元,用于将所述目标RPC消息通过消息中间件广播至所述N个服务器,以使得第二服务器判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,且在确定所述目标本地缓存中未存储有与所述目标RPC消息所对应的目标RPC服务时,将所述目标RPC服务缓存至所述目标本地缓存,并调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果,所述第二服务器为所述N个服务器中的任意一个服务器,所述目标本地缓存为所述第二服务器所对应的本地缓存;
接收单元,用于接收所述执行结果;
其中,所述封装单元具体用于:
获取所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数;
将所述针对所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数进行封装,得到所述目标RPC消息。
6.一种远程过程调用服务处理装置,其特征在于,包括:
监听单元,用于监听第一服务器通过消息中间件广播的目标远程过程调用RPC消息,所述目标RPC消息为所述第一服务器对针对于第二服务集群中N个服务器所对应的RPC调用请求进行封装得到的,其中,所述N为大于或等于2的整数,所述第一服务器为第一服务集群中的任意一个服务器;
判断单元,用于判断目标本地缓存中是否存储有与所述目标RPC消息所对应的目标RPC服务,所述目标本地缓存为所述N个服务器中的任意一个服务器所对应的本地缓存;
缓存单元,用于若所述目标本地缓存中未存储有所述目标RPC服务,则将所述目标RPC服务缓存至所述目标本地缓存;
执行单元,用于调用所述目标RPC服务执行相应的操作,得到执行结果,并返回所述执行结果;
其中,所述目标RPC消息为所述第一服务器对针对于第二服务集群中N个服务器所对应的RPC调用请求进行封装得到的,包括:
获取所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数;
将所述针对所述N个服务器所对应的RPC服务的RPC调用服务名、调用方法及调用参数进行封装,得到所述目标RPC消息。
7.一种计算机设备,其特征在于,包括:
存储器、处理器以及总线系统;
其中,所述存储器用于存储程序,所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信;
所述处理器用于执行所述存储器中的程序,所述处理器用于根据程序代码中的指令执行权利要求1和权利要求2至4中任一项所述的执行方法。
8.一种计算机存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行权利要求1和权利要求2至4中任一项所述的执行方法。
CN202110573567.8A 2021-05-25 2021-05-25 远程过程调用服务的处理方法、装置和可读存储介质 Active CN113220485B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110573567.8A CN113220485B (zh) 2021-05-25 2021-05-25 远程过程调用服务的处理方法、装置和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110573567.8A CN113220485B (zh) 2021-05-25 2021-05-25 远程过程调用服务的处理方法、装置和可读存储介质

Publications (2)

Publication Number Publication Date
CN113220485A CN113220485A (zh) 2021-08-06
CN113220485B true CN113220485B (zh) 2023-05-05

Family

ID=77098397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110573567.8A Active CN113220485B (zh) 2021-05-25 2021-05-25 远程过程调用服务的处理方法、装置和可读存储介质

Country Status (1)

Country Link
CN (1) CN113220485B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114143127B (zh) * 2021-11-29 2023-10-20 网易(杭州)网络有限公司 数据广播方法、装置和电子设备
CN115118590B (zh) * 2022-06-22 2024-05-10 平安科技(深圳)有限公司 配置数据的管理方法、装置、系统、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491800A (en) * 1993-12-20 1996-02-13 Taligent, Inc. Object-oriented remote procedure call networking system
CN112783672A (zh) * 2021-01-27 2021-05-11 传神语联网网络科技股份有限公司 一种远程过程调用处理方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8505038B2 (en) * 2008-01-28 2013-08-06 Blue Coat Systems, Inc. Method and system for enhancing MS exchange (MAPI) end user experiences in a split proxy environment
CN109218349A (zh) * 2017-06-29 2019-01-15 北京微影时代科技有限公司 一种管理服务器集群的方法及装置
CN111338829B (zh) * 2020-03-26 2023-09-15 口碑(上海)信息技术有限公司 远程过程调用服务的调用方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491800A (en) * 1993-12-20 1996-02-13 Taligent, Inc. Object-oriented remote procedure call networking system
CN112783672A (zh) * 2021-01-27 2021-05-11 传神语联网网络科技股份有限公司 一种远程过程调用处理方法及系统

Also Published As

Publication number Publication date
CN113220485A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN113220485B (zh) 远程过程调用服务的处理方法、装置和可读存储介质
US11012892B2 (en) Resource obtaining method, apparatus, and system
CN110430275B (zh) 数据处理方法、装置、系统、计算设备以及介质
CN103581276B (zh) 集群管理装置、系统、业务客户端及相应方法
WO2016184175A1 (zh) 数据库处理方法及装置
CN109936514B (zh) 一种报文处理方法和装置
CN112039796B (zh) 数据包传输方法和装置、存储介质和电子设备
US10826977B2 (en) System and method for supporting asynchronous request/response in a network environment
CN111641676B (zh) 一种第三方云监控服务的构建方法及装置
CN111258723B (zh) 分布式系统的事务处理方法、装置、系统、介质及设备
CN108093086A (zh) 一种服务网关的数据传输方法及系统
US20180295062A1 (en) System and method for efficient traffic shaping and quota enforcement in a cluster environment
CN113938520A (zh) 一种服务注册方法、设备及存储介质
CN114070833A (zh) 多协议服务兼容方法、系统、设备、介质和程序产品
CN110519388B (zh) 区块链请求的处理方法、装置、电子设备及可读存储介质
US20140143592A1 (en) Client based high availability method for message delivery
US20110113131A1 (en) Method of Load Balance Based on BS Architecture
US10592374B2 (en) Remote service failure monitoring and protection using throttling
CN109743367B (zh) 服务处理方法、装置、电子设备及可读存储介质
CN111831402B (zh) 用于管理软件功能的方法、设备和计算机程序产品
CN111831503A (zh) 一种基于监控代理的监控方法和监控代理装置
CN113645259B (zh) 微服务弹性伸缩方法、系统及相关设备
CN112181470B (zh) 一种部署补丁的方法和装置
CN113472850A (zh) 链路数据获取方法、装置、系统、电子设备和存储介质
CN105827567B (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
GR01 Patent grant
GR01 Patent grant