CN111654480A - 一种rpc连接建立方法、装置及存储介质 - Google Patents

一种rpc连接建立方法、装置及存储介质 Download PDF

Info

Publication number
CN111654480A
CN111654480A CN202010445525.1A CN202010445525A CN111654480A CN 111654480 A CN111654480 A CN 111654480A CN 202010445525 A CN202010445525 A CN 202010445525A CN 111654480 A CN111654480 A CN 111654480A
Authority
CN
China
Prior art keywords
rpc
connection
server
rpc connection
client
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.)
Granted
Application number
CN202010445525.1A
Other languages
English (en)
Other versions
CN111654480B (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.)
China Citic Bank Corp Ltd
Original Assignee
China Citic Bank Corp 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 China Citic Bank Corp Ltd filed Critical China Citic Bank Corp Ltd
Priority to CN202010445525.1A priority Critical patent/CN111654480B/zh
Publication of CN111654480A publication Critical patent/CN111654480A/zh
Application granted granted Critical
Publication of CN111654480B publication Critical patent/CN111654480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明实施例提供了一种RPC连接建立方法,应用于客户端,包括:向服务端发送RPC连接建立请求,其中,所述RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;接收所述服务端反馈的RPC连接建立响应,以完成与该服务端的RPC连接的建立。通过本发明实施例提供的RPC连接建立方法,客户端与服务端建立RPC连接过程中所涉及的配置信息包括了数据包大小、通信协议和序列化协议等详细信息,从而可以在有限的服务器资源上提供更稳定和高效的远程服务调用。

Description

一种RPC连接建立方法、装置及存储介质
技术领域
本发明涉及通信领域,具体涉及一种RPC连接建立方法、装置及存储介质。
背景技术
远程过程调用(RPC,Remote Procedure Call)是一种调用方无感知的远程服务调用方式。目前常用的开源RPC框架有Dubbo、gRPC、 SOFARPC等。
目前基于RPC框架的连接管理主要基于操作系统级别的TCP长连接管理和自定义心跳包协议,比较粗粒度。其中,Dubbo只有简单的连接个数和连接创建方式管理;gRPC是一对一创建连接,没有连接管理;SOFARPC基于系统层TCP长连接配置和心跳包实现了连接管理,但提供的连接配置只有连接个数和状态等基本信息。
现有的基于RPC的连接,要么没有连接管理,要么连接管理配置信息非常简单,不利于在有限的服务器资源上提供更稳定和高效的远程服务调用。
发明内容
本发明提供了一种RPC连接建立方法和装置,通过更全面的连接配置,解决了现有连接管理中配置信息简单的问题。
本发明实施例提供了一种RPC连接建立方法,应用于客户端,包括:
向服务端发送RPC连接建立请求,其中,所述RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;
接收所述服务端反馈的RPC连接建立响应,以完成与所述服务端的RPC连接的建立。
本发明实施例还提供了一种RPC连接建立方法,应用于服务端,包括:
接收客户端发送的RPC连接建立请求,其中,所述RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;
建立与所述客户端的RPC连接,并保存与所述RPC连接对应的数据包大小、通信协议和序列化协议信息。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例中的任意一种方法。
本发明实施例还提供了一种电子装置,包括存储器和处理器,所述处理器通过执行所述存储器中的程序实现本发明实施例中的任意一种方法。
通过本发明实施例提供的RPC连接建立方法,客户端与服务端建立RPC连接过程中所涉及的配置信息还包括了数据包大小、通信协议和序列化协议等更详细的信息,从而可以在有限的服务器资源上提供更稳定和高效的远程服务调用。
附图说明
图1为本发明实施例提供的一种RPC连接建立方法的流程图;
图2为本发明实施例提供的另一种RPC连接建立方法的流程图;
图3为本发明实施例提供的一种RPC连接建立装置的框架图;
图4为本发明实施例提供的另一种RPC连接建立装置的框架图;
图5是本发明实施例提供的一种RPC调用框架图;
图6是本发明实施例提供的一种RPC调用方法流程图。
具体实施方法
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
另外,在本发明实施例中,“可选的”或者“示例性的”等词用于表示作例子、例证或说明。本发明实施例中被描述为“可选的”或者“示例性的”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“可选的”或者“示例性的”等词旨在以具体方式呈现相关概念。
图1为本发明实施例提供的一种RPC连接建立方法的流程图,应用于客户端,如图1所示,本实施例提供的方法可以包括如下步骤:
S102,向服务端发送RPC连接建立请求,其中,该RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;
S104,接收该服务端反馈的RPC连接建立响应,以完成与该服务端的RPC连接的建立。
通过本发明实施例提供的RPC连接建立方法,客户端与服务端建立RPC连接过程中所涉及的配置信息还包括了数据包大小、通信协议和序列化协议等更详细的信息,从而可以在有限的服务器资源上提供更稳定和高效的远程服务调用。
可选的,该向服务端发送RPC连接建立请求包括:判断该客户端当前已建立的RPC连接中是否存在空闲的RPC连接;在判断结果为否的情况下,判断该当前已建立的RPC连接的数量是否超过第一阈值;在判断结果为否的情况下,向该服务端发送RPC连接建立请求。
客户端连接池的建立采取“提前预备+按需创建”的方式。客户端进程启动后,同时创建一个RPC客户端连接,等待客户端发起RPC 请求。代码实现中,每个连接都有“在用/空闲/异常”的状态标识。后续有新的RPC请求时,从“空闲”的RPC连接中选择一个进行RPC 请求发送,如没有“空闲”的连接,则建立新的RPC连接。可以预先对客户端同一时间存在的RPC连接的最大数量进行配置,该最大数量即上文的第一阈值,如果RPC连接总数量已经超过该最大数量,则新的RPC连接建立请求进入排队。还可以对排队等待建立连接的最大数量进行配置,如果排队连接数已经超过排队数量限制,则反馈客户端进程“连接已满,无法发送本次RPC请求”。
可选的,在接收该服务端反馈的RPC连接建立响应之后,该方法还包括:通过该RPC连接向该服务端发送RPC请求,该RPC请求中携带有该通信协议和该序列化协议信息;接收该服务端反馈的响应。
客户端进程有RPC请求时,先按调用需求组装RPC请求报文体, RPC客户端根据配置的通信协议、序列化协议等组装RPC请求报文头,通过该新建立的连接将RPC请求发送到服务端,发送前根据配置对数据包大小、通信协议和序列化协议等进行校验。其中,可以预先配置连接中单次请求的数据包大小,此为数据包大小的最大限制,为提升整体并发,可以使用小包通信,数据包大小按需设置,单位KByte,如150KByte;可以预先配置通信协议是TCP、UDP、HTTP或HTTPS,对于同一个客户端一般使用固定且唯一的通信协议;可以预先配置序列化协议是XML、Json、Kryo或Hession的一种或多种。
可选的,在通过该RPC连接向该服务端发送RPC请求之后,该方法还包括:在超过第二阈值的时间内未收到该服务端响应的情况下,继续通过该RPC连接向该服务端发送多次RPC请求;在连续未收到该服务端响应的次数超过第三阈值的情况下,判断该RPC连接的状态为异常;更换RPC连接向该服务服务端发送RPC请求。
发送RPC请求的过程中,如果请求发送后超过预设时间(即上文的第二阈值)未接收到服务端的返回信息,则重发请求进行重试,重试指定次数(即上文的第三阈值)后仍超时的,则判定当前连接为异常,选择其他可用连接进行请求发送。其中,可以预先配置请求超时时间限制:单位秒,按需设置,如30s;请求超时异常重发次数:按需设置,如2次。
可选的,在接收该服务端反馈的RPC连接建立响应之后,该方法还包括:在该RPC连接保持空闲的时间超过第四阈值的情况下,通过该RPC连接向该服务端发送多个心跳包;在连续未收到ACK反馈的次数超过第五阈值的情况下,判断该RPC连接的状态为异常。
为了保证连接都是正常可用的,客户端会开启独立的线程定时检查连接的状态,检查频率按照配置执行。连接状态检查对象是保持空闲时间超过指定时间(即上文的第四阈值)的连接,检查的方式是发心跳包。心跳包只需要在报文头中注明包类型的信息,无需详细写其他信息和报文体信息。为降低网络流量,对于心跳包,对端RPC应用层无需做回应,检查结果的判断是收到检查心跳包的ACK反馈。如某一连接在连续指定次数(即上文的第五阈值)内均未收到ACK返回,则判定连接状态为异常。其中,连接状态检查频率:单位分钟,按需设置,如60min;连接状态检查要求:空闲时间超过指定时间,单位分钟,按需设置,如30min;异常连接心跳包重发次数:按需设置,如3次。
可选的,在对客户端RPC连接的配置中,可以同时包括:①RPC 连接个数:同一时间允许的RPC连接的最大数量和允许排队等待建立 RPC连接的最大数量,代码实现中,每个连接都有“在用/空闲/异常”的状态标识;②连接的通讯协议:对于同一个客户端一般使用固定且唯一的通讯协议,可选TCP、UDP、HTTP、HTTPS;③连接中单次请求的数据包大小:此为包大小的最大限制,为提升整体并发,使用小包通信,数据包大小按需设置,单位KByte,如150KByte;④序列化协议:XML、Json、Kryo、Hession四种(不限于)可选;⑤连接状态检查频率:单位分钟,按需设置,如60min;⑥连接超时时间限制:单位秒,按需设置,如30s;⑦连接状态检查要求:空闲时间超过指定时间,单位分钟,按需设置,如30min;⑧异常连接心跳包重发次数:按需设置,如3次;⑨请求超时异常重发次数:按需设置,如2 次。完成配置后,客户端可以依据连接配置对RPC连接中的请求包和返回包进行限制、对RPC连接中的接受包进行筛查。
图2为本发明实施例提供的另一种RPC连接建立方法的流程图,应用于服务端,如图2所示,本实施例提供的方法可以包括如下步骤:
S202:接收客户端发送的RPC连接建立请求,其中,该RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;
S204:建立与该客户端的RPC连接,并保存与该RPC连接对应的数据包大小、通信协议和序列化协议信息。
通过本发明实施例提供的RPC连接建立方法,客户端与服务端建立RPC连接过程中所涉及的配置信息还包括了数据包大小、通信协议和序列化协议等更详细的信息,从而可以在有限的服务器资源上提供更稳定和高效的远程服务调用。
可选的,该建立与该客户端的RPC连接包括:判断该服务器当前已建立的RPC连接的数量是否超过第六阈值;在判断结果为否的情况下,建立与该客户端的RPC连接。
服务端会预先对同一时间存在的RPC连接的最大数量进行配置,该最大数量即上文的第六阈值。在服务端接收到RPC连接请求后,会先判断当前RPC连接总数量是否超过第六阈值,在未超过第六阈值的情况下才会创建连接。客户端请求创建连接时,将连接的通信协议、数据包大小、序列化协议及其他必要信息放到报文头中发送给服务端。服务端接收到请求后,服务端根据连接池的连接个数判断是否继续接收客户端的连接请求,如果可以创建连接则连同报文头里的配置信息一同保存,这样,每个连接都有对应的连接配置信息存放在服务端。当服务端的可用连接总数超过对应配置时,服务器对客户端新建连接的请求会返回“连接池已满,拒绝连接”的错误码报文。
可选的,在建立与该客户端的RPC连接之后,该方法还包括:接收该客户端发送的RPC请求,该RPC请求中携带有通信协议和序列化协议信息;依据预先存储的与该RPC连接对应的数据包大小、通信协议和序列化协议信息,对该RPC请求进行校验;在校验通过的情况下,响应该RPC请求。
在服务端接收到RPC请求的情况下,会直接根据预先存储的连接配置中的数据包大小、协议和序列化进行RPC请求校验。校验通过的继续后续的处理。校验不通过的则将“请求包不符合连接配置要求”对应的错误码打包返回给RPC客户端。
可选的,在建立与该客户端的RPC连接之后,该方法还包括:在该RPC连接保持空闲的时间超过第七阈值的情况下,通过该RPC连接向该客户端发送多个心跳包;在连续未收到ACK反馈的次数超过第八阈值的情况下,判断该RPC连接状态为异常。
为了保证连接都是正常可用的,服务端会开启独立的线程定时检查连接的状态,检查频率按照配置执行。连接状态检查对象是保持空闲时间超过指定时间(即上文的第七阈值)的连接,检查的方式是发心跳包。心跳包只需要在报文头中注明包类型的信息,无需详细写其他信息和报文体信息。为降低网络流量,对于心跳包,对端RPC应用层无需做回应,检查结果的判断是收到检查心跳包的ACK反馈。如某一连接在连续指定次数(即上文的第八阈值)内均未收到ACK返回,则判定连接状态为异常。其中,连接状态检查频率:单位分钟,按需设置,如60min;连接状态检查要求:空闲时间超过指定时间,单位分钟,按需设置,如30min;异常连接心跳包重发次数:按需设置,如3次。
图3为本发明实施例提供的一种RPC连接建立装置的框架图,应用于客户端,如图3所示,本实施例提供的装置可以包括发送模块 302和接收模块304,其中:
第一发送模块302,用于向服务端发送RPC连接建立请求,其中,该RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;
第一接收模块304,用于接收该服务端反馈的RPC连接建立响应,以完成与该服务端的RPC连接的建立。
可选的,第一发送模块302还包括:第一判断子模块,用于判断该客户端当前已建立的RPC连接中是否存在空闲的RPC连接;第二判断子模块,用于在判断结果为否的情况下,判断该当前已建立的RPC 连接的数量是否超过第一阈值;发送子模块,用于在判断结果为否的情况下,向该服务端发送RPC连接建立请求。
可选的,该RPC连接装置还包括:第二发送模块,用于通过该RPC连接向该服务端发送RPC请求,该RPC请求中携带有该通信协议和该序列化协议信息;第二接收模块,用于接收该服务端反馈的响应。
可选的,该RPC连接装置还包括:第三发送模块,用于在超过第二阈值的时间内未收到该服务端响应的情况下,继续通过该RPC连接向该服务端发送多次RPC请求;第一判断模块,用于在连续未收到该服务端响应的次数超过第三阈值的情况下,判断该RPC连接状态为异常;更换模块,用于更换RPC连接向该服务服务端发送RPC请求。
可选的,该RPC连接装置还包括:第四发送模块,用于在该RPC 连接保持空闲的时间超过第四阈值的情况下,通过该RPC连接向该服务端发送多个心跳包;第二判断模块,用于在连续未收到ACK反馈的次数超过第五阈值的情况下,判断该RPC连接状态为异常。
图4为本发明实施例提供的另一种RPC连接建立装置的框架图,应用于服务端,如图4所示,本实施例提供的装置可以包括第一接收模块402和连接模块404,其中:
第一接收模块402,用于接收客户端发送的RPC连接建立请求,其中,该RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;
连接模块404,用于建立与该客户端的RPC连接,并保存与该RPC 连接对应的数据包大小、通信协议和序列化协议信息。
可选的,该连接模块404包括:判断子模块,用于判断该服务器当前已建立的RPC连接的数量是否超过第六阈值;连接子模块,用于在判断结果为否的情况下,建立与该客户端的RPC连接。
可选的,该RPC连接装置还包括:第二接收模块,用于接收该客户端发送的RPC请求,该RPC请求中携带有通信协议和序列化协议信息;校验模块,用于依据预先存储的与该RPC连接对应的数据包大小、通信协议和序列化协议信息,对该RPC请求进行校验;响应模块,用于在校验通过的情况下,响应该RPC请求。
可选的,该RPC连接装置还包括:发送模块,用于在该RPC连接保持空闲的时间超过第七阈值的情况下,通过该RPC连接向该客户端发送多个心跳包;判断模块,用于在连续未收到ACK反馈的次数超过第八阈值的情况下,判断该RPC连接状态为异常。
以下结合具体应用场景对本发明实施例的RPC调用方法进行说明,图5是本发明实施例提供的一种RPC调用框架图,图6是本发明实施例提供的一种RPC调用方法流程图。
步骤1,客户端函数发出RPC调用请求;
步骤2,客户端从自己的连接池中选择可用的空闲RPC连接;如果无空闲连接,则继续与服务端建立新的RPC连接;
步骤3,客户端将对象、方法、入参等序列化打包为报文体;
步骤4,客户端将通讯协议、序列化协议等校验信息打包为报文头;
步骤5,客户端通过选择的RPC连接将报文发送给服务端;
步骤6,服务器对接收到的报文进行判断,在判断报文为RPC请求的情况下进入步骤7;
步骤7,服务端根据报文头的信息对RPC请求进行校验,校验通过的情况下进入步骤8,校验失败的情况向客户端返回连接信息不符合要求的响应;
步骤8,服务端对请求报文进行反序列化;
步骤9,服务端调用本地服务端函数处理业务;
步骤10,服务端函数处理业务;
步骤11,服务端函数返回处理结果;
步骤12,服务端对处理结果进行序列化;
步骤13,服务端将序列化后的结果返回给客户端;
步骤14,客户端对结果进行反序列化操作;
步骤15,服务端函数查看/返回调用结果。
当然,在步骤1之前还会执行以下步骤:
步骤0.1,客户端向服务端发送RPC连接建立请求;
步骤0.2,客户端创建RPC连接池;
步骤0.3,服务端创建RPC连接池;
步骤0.4,在RPC连接保持空闲的时间超过一定时间的情况下,客户端向服务端发生连接检查心跳包。
需要说明的是,上述步骤序号不用于限制具体的执行顺序。比如,步骤0.1可以发生在客户端创建连接池之后发生。另外,除了客户端向服务端发送心跳包进行连接检查之外,也可以由服务端向客户端发送心跳包进行连接检查。
本发明实施例还提供了一种电子装置,该电子装置包括处理器和存储器;电子装置中处理器的数量可以是一个或多个,存储器作为一种计算机可读存储介质,可用于存储计算机可执行程序。处理器通过运行存储在存储器中的软件程序、指令,从而执行电子装置的各种功能应用以及数据处理,即实现上述任一实施例中的方法。
本申请实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时实现上述任一实施例中的方法。
可选的,处理器通过执行指令实现一种RPC连接建立方法,该方法包括:
S1,向服务端发送RPC连接建立请求,其中,该RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;
S2,接收该服务端反馈的RPC连接建立响应,以完成与该服务端的RPC连接的建立。
以上仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(ISA) 指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(ROM)、随机访问存储器(RAM)、光存储器装置和系统(数码多功能光碟DVD或CD光盘) 等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(FGPA)以及基于多核处理器架构的处理器。
通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本发明的范围。因此,本发明的恰当范围将根据权利要求确定。

Claims (11)

1.一种RPC连接建立方法,应用于客户端,其特征在于,包括:
向服务端发送RPC连接建立请求,其中,所述RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;
接收所述服务端反馈的RPC连接建立响应,以完成与所述服务端的RPC连接的建立。
2.如权利要求1所述的方法,其特征在于,所述向服务端发送RPC连接建立请求包括:
判断所述客户端当前已建立的RPC连接中是否存在空闲的RPC连接;
在判断结果为否的情况下,判断所述当前已建立的RPC连接的数量是否超过第一阈值;
在判断结果为否的情况下,向所述服务端发送RPC连接建立请求。
3.如权利要求1或2所述的方法,其特征在于,在接收所述服务端反馈的RPC连接建立响应之后,所述方法还包括:
通过所述RPC连接向所述服务端发送RPC请求,所述RPC请求中携带有所述通信协议和所述序列化协议信息;
接收所述服务端反馈的响应。
4.如权利要求3所述的方法,其特征在于,在通过所述RPC连接向所述服务端发送RPC请求之后,所述方法还包括:
在超过第二阈值的时间内未收到所述服务端响应的情况下,继续通过所述RPC连接向所述服务端发送多次RPC请求;
在连续未收到所述服务端响应的次数超过第三阈值的情况下,判断所述RPC连接的状态为异常;
更换RPC连接向所述服务服务端发送RPC请求。
5.如权利要求1或2所述的方法,其特征在于,在接收所述服务端反馈的RPC连接建立响应之后,所述方法还包括:
在所述RPC连接保持空闲的时间超过第四阈值的情况下,通过所述RPC连接向所述服务端发送多个心跳包;
在连续未收到ACK反馈的次数超过第五阈值的情况下,判断所述RPC连接的状态为异常。
6.一种RPC连接建立方法,应用于服务端,其特征在于,包括:
接收客户端发送的RPC连接建立请求,其中,所述RPC连接建立请求中携带有数据包大小、通信协议和序列化协议信息;
建立与所述客户端的RPC连接,并保存与所述RPC连接对应的数据包大小、通信协议和序列化协议信息。
7.如权利要求6所述的方法,其特征在于,所述建立与所述客户端的RPC连接包括:
判断所述服务器当前已建立的RPC连接的数量是否超过第六阈值;
在判断结果为否的情况下,建立与所述客户端的RPC连接。
8.如权利要求6或7所述的方法,在建立与所述客户端的RPC连接之后,所述方法还包括:
接收所述客户端通过所述RPC连接发送的RPC请求,所述RPC请求中携带有通信协议和序列化协议信息;
依据预先存储的与所述RPC连接对应的数据包大小、通信协议和序列化协议信息,对所述RPC请求进行校验;
在校验通过的情况下,响应所述RPC请求。
9.如权利要求6或7所述的方法,在建立与所述客户端的RPC连接之后,所述方法还包括:
在所述RPC连接保持空闲的时间超过第七阈值的情况下,通过所述RPC连接向所述客户端发送多个心跳包;
在连续未收到ACK反馈的次数超过第八阈值的情况下,判断所述RPC连接的状态为异常。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5或者如权利要求6-9中任一项所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述处理器通过执行所述存储器中的计算机程序实现如权利要求1-5或者如权利要求6-9中任一项所述的方法。
CN202010445525.1A 2020-05-24 2020-05-24 一种rpc连接建立方法、装置及存储介质 Active CN111654480B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010445525.1A CN111654480B (zh) 2020-05-24 2020-05-24 一种rpc连接建立方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010445525.1A CN111654480B (zh) 2020-05-24 2020-05-24 一种rpc连接建立方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN111654480A true CN111654480A (zh) 2020-09-11
CN111654480B CN111654480B (zh) 2022-05-20

Family

ID=72348346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010445525.1A Active CN111654480B (zh) 2020-05-24 2020-05-24 一种rpc连接建立方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN111654480B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2171815A1 (en) * 1995-03-22 1996-09-23 David M. Brownell Method and apparatus for managing connections for communication among objects in a distributed object system
US6182109B1 (en) * 1996-03-08 2001-01-30 International Business Machines Corporation Dynamic execution unit management for high performance user level network server system
US20030200329A1 (en) * 2002-04-23 2003-10-23 Delaney William P. Polling-based mechanism for improved RPC timeout handling
US20040221031A1 (en) * 2003-04-29 2004-11-04 Oracle International Corporation Method and apparatus using connection pools in communication networks
US7406523B1 (en) * 2000-11-21 2008-07-29 Microsoft Corporation Client-server communications system and method using a semi-connectionless protocol
CN101795289A (zh) * 2009-12-30 2010-08-04 华为技术有限公司 一种远程过程调用控制方法、装置和系统
US20140337536A1 (en) * 2013-05-09 2014-11-13 Tencent Technology (Shenzhen) Company Limited Method and apparatus for data communication
US20150142981A1 (en) * 2013-11-15 2015-05-21 Microsoft Corporation Switching of connection protocol
WO2015117415A1 (zh) * 2014-08-22 2015-08-13 中兴通讯股份有限公司 实现对网络逻辑实体的操作方法、客户端及代理端
US20160080529A1 (en) * 2013-09-30 2016-03-17 Tencent Technology (Shenzhen) Company Limited Method and device for sending requests
CN109547291A (zh) * 2018-12-06 2019-03-29 珠海西山居移动游戏科技有限公司 一种快速定位高频带宽消耗的方法及装置
CN109726014A (zh) * 2018-12-29 2019-05-07 武汉斗鱼网络科技有限公司 基于Netty的Rpc客户端在性能测试平台中的实现方法、系统、服务器及存储介质
CN110300176A (zh) * 2019-07-02 2019-10-01 斯德沃(深圳)网络科技有限公司 一种数据库rpc服务器的工作方法和数据库rpc服务器

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2171815A1 (en) * 1995-03-22 1996-09-23 David M. Brownell Method and apparatus for managing connections for communication among objects in a distributed object system
EP0733971A2 (en) * 1995-03-22 1996-09-25 Sun Microsystems, Inc. Method and apparatus for managing connections for communication among objects in a distributed object system
US6182109B1 (en) * 1996-03-08 2001-01-30 International Business Machines Corporation Dynamic execution unit management for high performance user level network server system
US7406523B1 (en) * 2000-11-21 2008-07-29 Microsoft Corporation Client-server communications system and method using a semi-connectionless protocol
US20030200329A1 (en) * 2002-04-23 2003-10-23 Delaney William P. Polling-based mechanism for improved RPC timeout handling
US20040221031A1 (en) * 2003-04-29 2004-11-04 Oracle International Corporation Method and apparatus using connection pools in communication networks
CN101795289A (zh) * 2009-12-30 2010-08-04 华为技术有限公司 一种远程过程调用控制方法、装置和系统
US20140337536A1 (en) * 2013-05-09 2014-11-13 Tencent Technology (Shenzhen) Company Limited Method and apparatus for data communication
US20160080529A1 (en) * 2013-09-30 2016-03-17 Tencent Technology (Shenzhen) Company Limited Method and device for sending requests
US20150142981A1 (en) * 2013-11-15 2015-05-21 Microsoft Corporation Switching of connection protocol
WO2015117415A1 (zh) * 2014-08-22 2015-08-13 中兴通讯股份有限公司 实现对网络逻辑实体的操作方法、客户端及代理端
CN105357244A (zh) * 2014-08-22 2016-02-24 中兴通讯股份有限公司 实现对网络逻辑实体的操作方法、客户端及代理端
CN109547291A (zh) * 2018-12-06 2019-03-29 珠海西山居移动游戏科技有限公司 一种快速定位高频带宽消耗的方法及装置
CN109726014A (zh) * 2018-12-29 2019-05-07 武汉斗鱼网络科技有限公司 基于Netty的Rpc客户端在性能测试平台中的实现方法、系统、服务器及存储介质
CN110300176A (zh) * 2019-07-02 2019-10-01 斯德沃(深圳)网络科技有限公司 一种数据库rpc服务器的工作方法和数据库rpc服务器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
M. ROSENAU: "DYNAMIC RPC NUMBER ASSIGNMENT AND DISTRIBUTION", 《INTERNET-DRAFT DRAFT-ROSENAU-RPC-DYNNAMES-00》 *
朱浩,徐丽: "远程过程调用的实现,应用与问题", 《远程过程调用的实现,应用与问题 *
陈超,石昭祥: "使服务原理分析及RPC数据包构造实现", 《信使服务原理分析及RPC数据包构造实现 *

Also Published As

Publication number Publication date
CN111654480B (zh) 2022-05-20

Similar Documents

Publication Publication Date Title
CN108124003B (zh) 网络管理设备连接处理方法、装置及系统
CN105960629B (zh) 在can网络中自动选择波特率的系统和方法
CN106384290B (zh) 保单处理系统、方法及装置
EP3489825A1 (en) Method, apparatus and computer readable storage medium for processing service
US9231995B2 (en) System and method for providing asynchrony in web services
US11553021B2 (en) Media downlink transmission control method and related device
CN110413424B (zh) 可配置的第三方消息回调方法、装置、服务器和存储介质
CN114237937A (zh) 一种多线程的数据传输方法和装置
CN108900627B (zh) 一种网络请求方法、终端装置及存储介质
CN113986501A (zh) 实时数据库api无中断调用方法、系统、存储介质及服务器
CN110333916B (zh) 请求消息处理方法、装置、计算机系统及可读存储介质
CN111427674A (zh) 一种微服务管理方法、装置及系统
CN111586140A (zh) 一种数据交互的方法及服务器
CN114371935A (zh) 网关处理方法、网关、设备及介质
WO2024103943A1 (zh) 一种业务处理方法、装置、存储介质及设备
CN111654480B (zh) 一种rpc连接建立方法、装置及存储介质
CN113010330A (zh) 一种微服务请求重试的方法及终端
CN113992740B (zh) 一种基于自主可控的中间件及数据传输方法
CN102263797A (zh) 一种会话控制的方法及装置
CN115357403A (zh) 一种用于任务调度的微服务系统及任务调度方法
CN113259404B (zh) 基于tcp/ip协议的工业通信中间件及其使用方法
CN114125021A (zh) 一种基于Netty消息驱动的终端信息发布系统
CN115250276A (zh) 分布式系统及数据处理的方法和装置
CN115174665B (zh) 登录状态确定方法、装置、设备及存储介质
JP7406007B2 (ja) ポート管理のための方法およびネットワークノード

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