CN113722126A - 一种请求处理方法和装置 - Google Patents
一种请求处理方法和装置 Download PDFInfo
- Publication number
- CN113722126A CN113722126A CN202111060457.8A CN202111060457A CN113722126A CN 113722126 A CN113722126 A CN 113722126A CN 202111060457 A CN202111060457 A CN 202111060457A CN 113722126 A CN113722126 A CN 113722126A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- request
- calling
- marking value
- 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 abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 404
- 230000005540 biological transmission Effects 0.000 claims abstract description 111
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000001360 synchronised effect Effects 0.000 claims description 34
- 238000004806 packaging method and process Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 238000005538 encapsulation Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
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 And Data Communications (AREA)
Abstract
本发明公开了一种请求处理方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:服务端接收客户端传输的方法调用请求,解析所述方法调用请求中的传输协议,得到预设字段下的打标值;在本地查询与所述打标值对应的方法,调用所述方法,得到调用结果并返回给客户端。该实施方式相比现有通用传输协议,本方案省去了调用的类名、方法名和参数类型,节省了传输体积,提高了服务端所能处理请求的吞吐量。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种请求处理方法和装置。
背景技术
目前各个企业都设置有其内部使用的RPC(Remote Procedure Call,远程过程调用)服务框架,但由于设定标准的不同,所以整体呈现出的效果和吞吐量也不相同,唯一相同之处,Consumer端调用Provider端的方法时,会将请求ID(RequestID)、调用的类名(InvokeClass)、方法名(InvokeMethod)、参数类型(ParameterTypes)和参数值数组(ParameterValues)封装为请求上下文,然后传输给Provider端解析并调用,之后Provider端将调用结果返回给Consumer端,至此,一个完整的请求处理完毕。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:目前企业主要集中在如何对RPC服务实现更好的插件化、如果使得RPC服务调用更加简便易用,但却在网络传输协议这方面墨守成规。参见表1所示为一般的传输协议设置形式,整体以字节方式调用,Consumer端将此传输协议按照具体内容封装为请求上下文,整体传输的字节数为792bytes,可知整体的消息体是巨大的,影响Provider端处理消息的吞吐量。
表1
发明内容
有鉴于此,本发明实施例提供一种请求处理方法和装置,至少能够解决现有Provider端和Consumer端对于网络传输协议固定,传输的字节数巨大,导致Provider端所能处理的请求吞吐量较小的现象。
为实现上述目的,根据本发明实施例的一个方面,提供了一种应用于服务端的请求处理方法,包括:服务端接收客户端传输的方法调用请求,解析所述方法调用请求中的传输协议,得到预设字段下的打标值;在本地查询与所述打标值对应的方法,调用所述方法,得到调用结果并返回给客户端。
可选的,打标值对应于方法涉及的类名、方法名和参数类型;在所述服务端接收客户端传输的方法调用请求之前,还包括:接收客户端传输的对方法调用列表的同步请求,将所述方法调用列表中各方法涉及的类名、方法名和参数类型缓存到本地并打标;以预设字符串为协议头、所述方法调用列表和对各方法的打标值为协议体,封装得到一个新的传输协议并返回给客户端。
可选的,在所述接收客户端传输的对方法调用列表的同步请求之前,还包括:在启动过程中,与客户端预设的端口号建立绑定关系;以及将服务发布到注册中心并标记为下线状态,以在监听到客户端传输的连接请求后,将所述服务标记为上线状态;其中,一个服务包括一个或多个方法。
可选的,还包括:响应于对一个或多个方法的变更打标值操作,将本地已缓存的打标值信息替换为变更后的当前打标值信息;以预设字符串为协议头、所述当前打标值信息为协议体,封装得到一个新的传输协议并传输给客户端以更新方法打标值信息。
可选的,在所述响应于对一个或多个方法的变更打标值操作之后,还包括:判断是否设置有针对方法调用列表同步的热部署策略;若未设置,则在重启服务端后,校验所述一个或多个方法当前的打标值信息是否和本地缓存的打标值信息一致;或若设置,则在执行热部署策略后,扫描每个方法当前的打标值信息,以和本地缓存的方法打标值列表作对比。
可选的,还包括:在处理客户端请求的过程中,若监测到与客户端之间的连接出现闪断情况,则对客户端上报的心跳包进行连续计数;若计数超过预设数值均未收到客户端上报的心跳包,则确定客户端处于掉线状态,并剔除与客户端之间的连接关系;在网络恢复正常并收到客户端传输的连接请求后,重新建立与客户端之间的连接关系,之后在收到客户端传输的心跳包后,将所述连接关系标记为有效连接,以对客户端进行方法调用列表的同步操作。
为实现上述目的,根据本发明实施例的一个方面,提供了一种应用于客户端的请求处理方法,包括:客户端接收用户对方法的调用请求,在本地查询对所述方法的打标值;将所述打标值作为预设字段的字节内容,以封装得到传输协议;将所述传输协议封装为新的调用请求并传输给服务端,之后接收服务端返回的调用结果,将所述调用结果返回给用户。
可选的,打标值对应于方法涉及的类名、方法名和参数类型;在客户端接收用户对方法的调用请求之前,还包括:传输对方法调用列表的同步请求给服务端,接收服务端返回的结果;若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值;将所述方法调用列表和对各方法的打标值缓存到本地。
可选的,所述传输对方法调用列表的同步请求给服务端,包括:在注册中心通过负载均衡方式,查找当前负载最小的服务端;传输连接请求给服务端,以建立与服务端之间的连接关系,进而通过所述连接关系,将对方法调用列表的同步请求传输给服务端。
可选的,还包括:在服务端处方法打标值更改的情况下,接收服务端传输的传输协议并解析,得到协议头和协议体;若所述协议头为预设字符串,则基于所述协议体中的方法打标值信息,更新本地缓存的方法打标值信息。
可选的,还包括:若发生断线重连情况,则确定上一次连接的服务端,基于与服务端之间的连接信息,重新建立与服务端之间的连接关系;封装心跳包并传输给服务端,同时传输对方法调用列表的同步请求给服务端,之后接收服务端返回的结果;若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值;基于所述方法调用列表和对各方法的打标值,更新本地缓存。
为实现上述目的,根据本发明实施例的另一方面,提供了一种应用于服务端请求处理装置,包括:解析模块,用于服务端接收客户端传输的方法调用请求,解析所述方法调用请求中的传输协议,得到预设字段下的打标值;调用模块,用于在本地查询与所述打标值对应的方法,调用所述方法,得到调用结果并返回给客户端。
可选的,打标值对应于方法涉及的类名、方法名和参数类型;还包括同步模块,用于:接收客户端传输的对方法调用列表的同步请求,将所述方法调用列表中各方法涉及的类名、方法名和参数类型缓存到本地并打标;以预设字符串为协议头、所述方法调用列表和对各方法的打标值为协议体,封装得到一个新的传输协议并返回给客户端。
可选的,还包括注册服务模块,用于:在启动过程中,与客户端预设的端口号建立绑定关系;以及将服务发布到注册中心并标记为下线状态,以在监听到客户端传输的连接请求后,将所述服务标记为上线状态;其中,一个服务包括一个或多个方法。
可选的,还包括打标值更新模块,用于:响应于对一个或多个方法的变更打标值操作,将本地已缓存的打标值信息替换为变更后的当前打标值信息;以预设字符串为协议头、所述当前打标值信息为协议体,封装得到一个新的传输协议并传输给客户端以更新方法打标值信息。
可选的,所述打标值更新模块,还用于:判断是否设置有针对方法调用列表同步的热部署策略;若未设置,则在重启服务端后,校验所述一个或多个方法当前的打标值信息是否和本地缓存的打标值信息一致;或若设置,则在执行热部署策略后,扫描每个方法当前的打标值信息,以和本地缓存的方法打标值列表作对比。
可选的,还包括断线重连模块,用于:在处理客户端请求的过程中,若监测到与客户端之间的连接出现闪断情况,则对客户端上报的心跳包进行连续计数;若计数超过预设数值均未收到客户端上报的心跳包,则确定客户端处于掉线状态,并剔除与客户端之间的连接关系;在网络恢复正常并收到客户端传输的连接请求后,重新建立与客户端之间的连接关系,之后在收到客户端传输的心跳包后,将所述连接关系标记为有效连接,以对客户端进行方法调用列表的同步操作。
为实现上述目的,根据本发明实施例的另一方面,提供了一种应用于客户端请求处理装置,包括:接收模块,用于客户端接收用户对方法的调用请求,在本地查询对所述方法的打标值;封装模块,用于将所述打标值作为预设字段的字节内容,以封装得到传输协议;传输模块,用于将所述传输协议封装为新的调用请求并传输给服务端,之后接收服务端返回的调用结果,将所述调用结果返回给用户。
可选的,打标值对应于方法涉及的类名、方法名和参数类型;还包括同步模块,用于:传输对方法调用列表的同步请求给服务端,接收服务端返回的结果;若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值;将所述方法调用列表和对各方法的打标值缓存到本地。
可选的,所述同步模块,用于:在注册中心通过负载均衡方式,查找当前负载最小的服务端;传输连接请求给服务端,以建立与服务端之间的连接关系,进而通过所述连接关系,将对方法调用列表的同步请求传输给服务端。
可选的,还包括打标值更新模块,用于:在服务端处方法打标值更改的情况下,接收服务端传输的传输协议并解析,得到协议头和协议体;若所述协议头为预设字符串,则基于所述协议体中的方法打标值信息,更新本地缓存的方法打标值信息。
可选的,还包括断线重连模块,用于:若发生断线重连情况,则确定上一次连接的服务端,基于与服务端之间的连接信息,重新建立与服务端之间的连接关系;封装心跳包并传输给服务端,同时传输对方法调用列表的同步请求给服务端,之后接收服务端返回的结果;若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值;基于所述方法调用列表和对各方法的打标值,更新本地缓存。
为实现上述目的,根据本发明实施例的再一方面,提供了一种请求处理电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的请求处理方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的请求处理方法。
根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:对于Provider端和Consumer端而言,由于调用的类名、方法名、参数类型都是已知的,所以这部分二者是完全可以预先进行协调的,即将调用的类名、方法名和参数类型去掉,则可以大幅精简传输协议的字节数,减小传输体积,以此提升请求吞吐量。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的应用于服务端的一种请求处理方法的主要流程示意图;
图2是根据本发明实施例的应用于服务端的一种可选的请求处理方法的流程示意图;
图3是根据本发明实施例的应用于客户端的一种请求处理方法的主要流程示意图;
图4是根据本发明实施例的应用于客户端的一种可选的请求处理方法的流程示意图;
图5是根据本发明实施例的一具体地请求处理方法流程交互示意图;
图6是根据本发明实施例的一种可选的请求处理方法的流程示意图;
图7是根据本发明实施例的另一种可选的请求处理方法的流程示意图;
图8是根据本发明实施例的一种应用于服务端的请求处理装置的主要模块示意图;
图9是根据本发明实施例的一种应用于客户端的请求处理装置的主要模块示意图;
图10是本发明实施例可以应用于其中的示例性系统架构图;
图11是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
调用方法Com.xx.coupon.service.getCouponInfo(List<int>skuids),其传输协议被设计为表1所示(已省略无关的字段信息),将该传输协议按照具体内容封装为请求上下文后,整体传输的字节数为:4+4+8+64+64+128+512+8=792bytes,可知整体的消息体是巨大的。
由于对于Provider端和Consumer端而言,调用的类名、方法名、参数类型均已知,所以这部分二者是完全可以预先进行协调的,即将调用的类名、方法名和参数类型去掉,则可以缩减的字节数大约为200多bytes,整体协议体将会被大大精简,以此提升Provider端处理的请求吞吐量。
针对本方案中技术术语的名词解释:
RPC:Remote Procedure Call,远程过程调用,远端机器的相互调用过程。
传输协议:不同端进行互相调用时,二者之间进行交互的业务逻辑。
Provider端:服务提供方,服务端。
Consumer端:服务调用方,客户端。
注册中心:服务进行集中注册的地方。
参见图1,示出的是本发明实施例提供的应用于服务端的一种请求处理方法的主要流程图,包括如下步骤:
S101:服务端接收客户端传输的方法调用请求,解析所述方法调用请求中的传输协议,得到预设字段下的打标值;
S102:在本地查询与所述打标值对应的方法,调用所述方法,得到调用结果并返回给客户端。
上述实施方式中,对于步骤S101,Consumer端在正常调用方法之前,会预先传输对方法调用列表的同步请求给Provider端,之后将Provider端返回的方法调用列表和对各个方法的打标值存储至本地,然后在此基础上进行通讯交互,具体参见后续图2和图4所示描述,在此不再赘述。
Provider端在收到Consumer端传输的方法调用请求后,会解析该请求中的传输协议(传输协议按照具体内容封装为请求上下文),以查询预设字段下的打标值,例如invokeflag字段下的打标值ACIL,对应addCouponInfo方法。
表2
需要说明的是,与表1对比,此处的预设字段invoke flag对应于表1中的类名(Class name)、方法名(Method Name)和参数类型(ParameterTypes),打标值对应于这三者的整体。
对于步骤S102,Provider端从本地缓存中找出与该打标值对应的方法,放入参数内容进行调用,如调用方法hello(String name)中的String为参数类型,name为参数内容,之后将调用结果返回给Consumer端。
上述实施例所提供的方法,相比现有通用传输协议,本方案省去了调用的类名、方法名和参数类型,节省了传输体积,提高了服务端所能处理请求的吞吐量。
参见图2,示出了根据本发明实施例的应用于服务端的一种可选的请求处理方法流程示意图,包括如下步骤:
S201:服务端在启动过程中,与客户端预设的端口号建立绑定关系;
S202:将服务发布到注册中心并标记为下线状态,以在监听到客户端传输的连接请求后,将所述服务标记为上线状态;其中,一个服务包括一个或多个方法;
S203:接收客户端传输的对方法调用列表的同步请求,将所述方法调用列表中各方法涉及的类名、方法名和参数类型缓存到本地并打标;
S204:以预设字符串为协议头、所述方法调用列表和对各方法的打标值为协议体,封装得到一个新的传输协议并返回给客户端。
上述实施方式中,对于步骤S201和S202,Provider端启动并绑定Consumer端指定的端口号,该端口号为Consumer端处用户默认设置的,如默认设置为13295。之后将需要暴露的服务发布到注册中心并标记为下线状态,如统一登录认证服务、风控服务等等,在做微服务化过程中,会拆分出来大量这类服务。之后Provider端开始监听Consumer端是否传输有连接请求,若监听到,此时再将暴露到注册中心的服务标记为上线状态;其中,一个服务包括一个或多个方法,整体组成方法调用列表。
需要说明的是,此处还未实施同步方法调用列表和方法打标值列表(参见图5所示),若服务未标记为下线状态,Provider端会收到外部请求流量,造成其他问题。因此此处将服务首先标记为下线状态,在开始处理Consumer端传输的连接请求后,再将服务标记为上线状态,此时再接收外部请求流量。
对于步骤S203,Provider端接收Consumer端传输的对方法调用列表的同步请求(比如协议为0x009开头),首先将已暴露给注册中心的方法调用列表缓存到Provider端本地,之后将服务涉及的类名、方法名和参数类型打上标记。或者首先缓存方法调用列表和打标,之后再接收Consumer端传输的对方法调用列表的同步请求,其先后执行顺序本方案不做限制,具体依据工作人员设置。
例如,Provider端处的方法调用列表包括:
Com.xx.coupon.service.getCouponInfo(List<int>skuids);(方法一)
Com.xx.coupon.service.addCouponInfo(List<int>skuids);(方法二)
将这2个方法缓存到本地,同时针对方法1涉及的类名、方法名和参数类型打上标记为GCIL,针对方法2涉及的类名、方法名和参数类型则打上标记为ACIL。
对于步骤S204,组装新的传输协议并返回给Consumer端,包括预设协议头(比如封装的协议为0x010开头)和协议体,协议体包括方法调用列表和对各方法的打标值。之后继续监听Consumer端的请求。
表3传输协议中被改造的部分
表3改造后的传输协议(此处未包含字节内容)
例如,Provider端处设有服务com.xx.HelloService,其包含调用方法hello(String name),通过前述方式在Provider端本地缓存并对该方法打标,如HSN->com.xx.HelloService.hello(String name),此处的HSN为自定义,只需与其他方法的打标值相区别开来即可。当Consumer端向Provider端传输对方法调用列表的同步请求后,Provider端会将“HSN->com.xx.HelloService.hello(String name)”封装到传输协议中,之后返回给Consumer端。
上述实施例所提供的方法,为服务端和客户端首次握手并建立连接部分,在两者建立连接关系后,开始进行方法调用列表和对方法打标值的同步,为后续调用方法减少传输协议体积提供基础。
参见图3,示出了根据本发明实施例应用于客户端的一种请求处理方法流程示意图,包括如下步骤:
S301:客户端接收用户对方法的调用请求,在本地查询对所述方法的打标值;
S302:将所述打标值作为预设字段的字节内容,以封装得到传输协议;
S303:将所述传输协议封装为新的调用请求并传输给服务端,之后接收服务端返回的调用结果,将所述调用结果返回给用户。
上述实施方式中,对于步骤S301~S303,Consumer端接收用户操作的对某一方法的调用请求,开始进行方法调用,具体地,从本地缓存中查询与该方法对应的打标值。例如,用户请求调用addCouponInfo方法,Consumer端首先从本地缓存中查找对应的标记ACIL,然后按照协议格式进行协议的封装(示例封装,以实际应用为主):
表4
封装传输协议时,首先将被调用方法中的类名(Class name)、方法名(MethodName)和参数类型(ParameterTypes)整体替换为预设字段invoke flag,为其设置打标值ACIL,如表4所示。封装得到新的传输协议,得到新的调用请求以传输给Provider端,之后收到Provider端返回的调用结果以返给用户。
上述实施例所提供的方法,对于方法调用请求,先在客户端处按照协议格式封装,此时无需再把类名、方法名和参数类型等一一封装到协议中,只需在传输协议中的预设字段上添上打标值即可,相比现有通用传输协议,节省了传输体积。
参见图4,示出了根据本发明实施例应用于客户端的一种可选的请求处理方法流程示意图,包括如下步骤:
S401:客户端在注册中心通过负载均衡方式,查找当前负载最小的服务端;
S402:传输连接请求给服务端,以建立与服务端之间的连接关系;
S403:通过所述连接关系,将对方法调用列表的同步请求传输给服务端,之后接收服务端返回的结果;
S404:若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值,将所述方法调用列表和对各方法的打标值缓存到本地。
上述实施方式中,对于步骤S401~S403,对于Consumer端,首先会去注册中心通过负载均衡方式,从多个Provider端中查找当前负载最小的一个Provider端,找到后直连,具体地,传输连接请求给该Provider端,以建立与该Provider端之间的连接关系。之后通过该连接关系,将对方法调用列表的同步请求传输给该Provider端,并监听Provider端的返回,若未返回,则继续监听。
对于步骤S404,Consumer端在收到Provider端返回的结果后,解析得到传输协议,若传输协议是以预设字符串(如0x010)为开头,则表示收到的结果包括待同步的方法调用列表和对各方法的打标值,将方法调用列表和各方法的打标值缓存到Consumer端本地。
例如,Provider端处设有一个服务com.xx.HelloService,其包含一个调用方法hello(String name),通过前述方式在Provider端本地缓存对该方法打标,如HSN->com.xx.HelloService.hello(String name),此处的HSN为自定义,只要与其他方法的打标值相区别开来即可。
当Consumer端向Provider端传输对方法调用列表的同步请求后,Provider端会将“HSN->com.xx.HelloService.hello(String name)”包装到传输协议传输给Consumer端。Consumer端在收到该传输协议后,也会在本地缓存中写入HSN->com.xx.HelloService.hello(String name)。后续Consumer端仅需传输HSN标记给Provider端即可,Provider端在检测到HSN后,可快速定位所对应的调用方法。
上述实施例所提供的方法,客户端收到服务端的方法调用列表和对各方法的打标值,将方法调用列表缓存到本地,并同服务端一样打上相同的标记,后续Provider端和Consumer端针对需交互的方法调用列表,都有了一份认知一致的调用副本。
参见图5,示出了根据本发明实施例的一具体地请求处理方法流程交互示意图,包括如下步骤:
1、Provider端在启动过程中,与Consumer端预设的端口号建立绑定关系;
2、Provider端将服务发布到注册中心并标记为下线状态;其中,一个服务包括一个或多个方法
3、Consumer端在注册中心通过负载均衡方式,查找当前负载最小的Provider端,传输连接请求给Provider端,以建立与Provider端之间的连接关系;
4、Provider端在监听到Consumer端传输的连接请求后,将服务标记为上线状态;
5、Consumer端通过连接关系,将对方法调用列表的同步请求传输给Provider端;
6、Provider端接收Consumer端传输的对方法调用列表的同步请求,将所述方法调用列表中各方法涉及的类名、方法名和参数类型缓存到本地并打标;
7、Provider端以预设字符串为协议头、所述方法调用列表和对各方法的打标值为协议体,封装得到一个新的传输协议并返回给Consumer端;
8、Consumer端接收Provider端返回的结果,若结果中传输协议的协议头为预设字符串,则确定结果包括方法调用列表和对各方法的打标值并缓存;
9、Consumer端接收用户对方法的调用请求,在本地查询对所述方法的打标值,将打标值作为预设字段的字节内容;
10、Consumer端封装得到传输协议,将传输协议封装为新的调用请求并传输给Provider端;
11、Provider端接收Consumer端传输的方法调用请求,解析所述方法调用请求中的传输协议,得到预设字段下的打标值,在本地查询与所述打标值对应的方法,调用所述方法,得到调用结果并返回给Consumer端;
12、Consumer端接收Provider端返回的调用结果,将调用结果返回给用户。
参见图6,示出了根据本发明实施例的一种可选的请求处理方法流程示意图,包括如下步骤:
S601:服务端响应于对一个或多个方法的变更打标值操作,判断是否设置有针对方法调用列表同步的热部署策略;
S602:若未设置,则在重启服务端后,校验所述一个或多个方法当前的打标值信息是否和本地缓存的打标值信息一致;
S603:若设置,则在执行热部署策略后,扫描每个方法当前的打标值信息,以和本地缓存的方法打标值列表作对比;
S604:在比对结果为不一致的情况下,将本地已缓存的打标值信息替换为变更后的当前打标值信息;
S605:以预设字符串为协议头、所述当前打标值信息为协议体,封装得到一个新的传输协议并传输给客户端以更新方法打标值信息;
S606:客户端接收服务端传输的传输协议并解析,得到协议头和协议体;
S607:若所述协议头为预设字符串,则基于所述协议体中的所述当前打标值信息,更新本地缓存的方法打标值信息。
上述实施方式中,对于步骤S601,方法打标值的变更,通常和业务方的业务变更有关。例如,服务com.xx.HelloService中设有hello(String name)方法,随着业务升级或业务需求的增多,如需携带用户地址,工作人员发现hello(String name)方法已无法满足业务需求,此时会对其进行升级,如升级为hello(String name,String userAddress)。
Provider端方法打标值的更新,通常情况下需要重启服务器,以将新的方法打标值发布出去。而有些Provider端由于设置有热部署策略,无需重启即可发布新的方法打标值,此处的热部署策略可视为是方法调用列表的同步机制。
对于步骤S602~S603,若Provider端未设置热部署策略,即针对重启发布的Provider端,会在重启后通过数据库预存数据或者其他方式,校验方法打标值是否发生变动,如比对版本是否一致。而对于热部署策略的Provider端,在热部署策略执行完毕后,本地的方法打标值worker会扫描各个方法的打标值,然后和本地已缓存的方法打标值列表作对比。
Provider端重启发布,无论方法打标值是否有更新,都会在和Consumer端建立连接的时候,在协议中包含一个特殊的协议头,如0x010,而协议体中则包含了更新的方法打标值信息、方法调用列表和对方法的打标值。Consumer端收到这种响应协议时会更新本地缓存。
对于步骤S604~S605,一旦方法打标值存在更新,Provider端无论是否重启,都会校验本地方法打标值。若未发生变动,则不做处理,但若发生变动,则首先将本地已缓存的打标值信息替换为当前打标值信息。组装传输协议,以预设字符串(如0x010)为协议头,当前新的方法打标值列表信息为协议体,传输给连接到Provider端的Consumer端进行更新。
对于步骤S606~S607,Consumer端收到Provider端传输的传输协议后,解析该传输协议的协议头,若协议头为0x010,则表示本次为更新操作,基于协议体中的当前方法打标值列表信息,更新本地的方法打标值信息。
上述实施例所提供的方法,在设计接口时会因为业务的关系,接口方法打标值时有更新,通过一组预定的协议头来响应这种处理更新,以此保证Consumer端与Provider端处方法打标值的及时同步。
参见图7,示出了根据本发明实施例的另一种可选的请求处理方法流程示意图,包括如下步骤:
S701:服务端在处理客户端请求的过程中,若监测到与客户端之间的连接出现闪断情况,则对客户端上报的心跳包进行连续计数;
S702:若计数超过预设数值均未收到客户端上报的心跳包,则确定客户端处于掉线状态,并剔除与客户端之间的连接关系;
S703:在网络恢复正常并收到客户端传输的连接请求后,重新建立与客户端之间的连接关系,之后在收到客户端传输的心跳包后,将所述连接关系标记为有效连接,以对客户端进行方法调用列表的同步操作;
S704:客户端若发生断线重连情况,则确定上一次连接的服务端,基于与服务端之间的连接信息,重新建立与服务端之间的连接关系;
S705:封装心跳包并传输给服务端,同时传输对方法调用列表的同步请求给服务端,之后接收服务端返回的结果;
S706:若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值;
S707:基于所述方法调用列表和对各方法的打标值,更新本地缓存。
上述实施方式中,对于步骤S701~S707,网络交互过程中,网络不一定一直处于稳定状态,有可能因为某些原因发生网络闪断,此时Provider端一般会通过接收Consumer端的心跳包来检测连接的有效性。若连续三次(数值仅为示例,实际可调)未接收到Consumer端上报的心跳包,则认定Consumer端掉线,之后会将此Consumer的连接关系踢掉。
但在网络恢复正常之后,通常Consumer端设置有断线重连的机制,以保证可用率问题。此时Consumer端会确定上一次连接的哪个Provider端以及获取与该Provider端的连接信息,然后发起重连操作重新建立连接关系,如果重连失败则重试,直至重连成功。
连接成功后,Consumer端首先会封装心跳包并传输给Provider端,用于在Provider端将上述连接信息标记为有效连接。同时传输对方法调用列表的同步请求给Provider端,该同步请求中传输协议的协议头为0x009,则Provider端收到0x009的协议头,认为双端连接之前因为某些因素导致了掉线,需要重新同步方法调用列表,于是以0x010为协议头、方法调用列表和对各方法的打标值为协议体,封装得到一个新的传输协议并返回给Consumer端,Consumer端接收到此消息将会更新本地方法打标值列表。
上述实施例所提供的方法,针对服务端和客户端交互过程中,如何判定是否断线以及针对断线重连后如何更新提出解决方案,以此保证客户端处的信息与服务端保持同步状态。
本发明实施例所提供的方法,既涉及服务端和客户端交互过程中方法打标值列表的改进,同时也涉及方法打标值列表如何在传输协议中进行传输的问题,针对该情况:
1、修改传输协议,对于更新/同步情况添加预设字符串,例如约定0x01代表创建、0x02代表更新/同步,如传输协议被封装为0x02|HSN->com.xx.HelloService.hello(String name),表示需更新该方法打标值;
2、同样针对RPC服务传输部分,服务端和客户端在建立连接关系时,将方法涉及的类名、方法名、参数类型通过预热机制缓存起来并打上相同的标记,这样两者均缓存有调用方法一致的交互副本,之后正式交互式传输协议只需附带缓存的标记即可,使得传输协议整体的体积优化30%以上(由于传输协议差别,实际上体积优化的百分比不同),极大的提升了RPC服务框架的吞吐效率;
3、由于对传输机制的更新,所以对方法打标值列表更新和断线重连这块机制均有所重新设计,以保证服务端和客户端处的方法打标值的及时同步。
参见图8,示出了本发明实施例提供的一种应用于服务端的请求处理装置800的主要模块示意图,包括:
解析模块801,用于服务端接收客户端传输的方法调用请求,解析所述方法调用请求中的传输协议,得到预设字段下的打标值;
调用模块802,用于在本地查询与所述打标值对应的方法,调用所述方法,得到调用结果并返回给客户端。
本发明实施装置中,打标值对应于方法涉及的类名、方法名和参数类型;
还包括同步模块,用于:
接收客户端传输的对方法调用列表的同步请求,将所述方法调用列表中各方法涉及的类名、方法名和参数类型缓存到本地并打标;
以预设字符串为协议头、所述方法调用列表和对各方法的打标值为协议体,封装得到一个新的传输协议并返回给客户端。
本发明实施装置还包括注册服务模块,用于:
在启动过程中,与客户端预设的端口号建立绑定关系;以及
将服务发布到注册中心并标记为下线状态,以在监听到客户端传输的连接请求后,将所述服务标记为上线状态;其中,一个服务包括一个或多个方法。
本发明实施装置还包括打标值更新模块,用于:
响应于对一个或多个方法的变更打标值操作,将本地已缓存的打标值信息替换为变更后的当前打标值信息;
以预设字符串为协议头、所述当前打标值信息为协议体,封装得到一个新的传输协议并传输给客户端以更新方法打标值信息。
本发明实施装置中,所述打标值更新模块,还用于:
判断是否设置有针对方法调用列表同步的热部署策略;
若未设置,则在重启服务端后,校验所述一个或多个方法当前的打标值信息是否和本地缓存的打标值信息一致;或
若设置,则在执行热部署策略后,扫描每个方法当前的打标值信息,以和本地缓存的方法打标值列表作对比。
本发明实施装置还包括断线重连模块,用于:
在处理客户端请求的过程中,若监测到与客户端之间的连接出现闪断情况,则对客户端上报的心跳包进行连续计数;
若计数超过预设数值均未收到客户端上报的心跳包,则确定客户端处于掉线状态,并剔除与客户端之间的连接关系;
在网络恢复正常并收到客户端传输的连接请求后,重新建立与客户端之间的连接关系,之后在收到客户端传输的心跳包后,将所述连接关系标记为有效连接,以对客户端进行方法调用列表的同步操作。
参见图9,示出了本发明实施例提供的一种应用于客户端的请求处理装置900的主要模块示意图,包括:
接收模块901,用于客户端接收用户对方法的调用请求,在本地查询对所述方法的打标值;
封装模块902,用于将所述打标值作为预设字段的字节内容,以封装得到传输协议;
传输模块903,用于将所述传输协议封装为新的调用请求并传输给服务端,之后接收服务端返回的调用结果,将所述调用结果返回给用户。
本发明实施装置中,打标值对应于方法涉及的类名、方法名和参数类型;
还包括同步模块,用于:
传输对方法调用列表的同步请求给服务端,接收服务端返回的结果;
若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值;
将所述方法调用列表和对各方法的打标值缓存到本地。
本发明实施装置中,所述同步模块,用于:
在注册中心通过负载均衡方式,查找当前负载最小的服务端;
传输连接请求给服务端,以建立与服务端之间的连接关系,进而通过所述连接关系,将对方法调用列表的同步请求传输给服务端。
本发明实施装置还包括打标值更新模块,用于:
在服务端处方法打标值更改的情况下,接收服务端传输的传输协议并解析,得到协议头和协议体;
若所述协议头为预设字符串,则基于所述协议体中的方法打标值信息,更新本地缓存的方法打标值信息。
本发明实施装置还包括断线重连模块,用于:
若发生断线重连情况,则确定上一次连接的服务端,基于与服务端之间的连接信息,重新建立与服务端之间的连接关系;
封装心跳包并传输给服务端,同时传输对方法调用列表的同步请求给服务端,之后接收服务端返回的结果;
若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值;
基于所述方法调用列表和对各方法的打标值,更新本地缓存。
另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。
图10示出了可以应用本发明实施例的示例性系统架构1000,包括终端设备1001、1002、1003,网络1004和服务器1005(仅仅是示例)。
终端设备1001、1002、1003可以是具有显示屏并且支持网页浏览的各种电子设备,安装有各种通讯客户端应用,用户可以使用终端设备1001、1002、1003通过网络1004与服务器1005交互,以接收或传输消息等。
网络1004用以在终端设备1001、1002、1003和服务器1005之间提供通信链路的介质。网络1004可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
服务器1005可以是提供各种服务的服务器,用于执行同步方法调用列表,对方法打标、处理方法调用、处理方法打标值同步以及客户端断线重连操作。
需要说明的是,本发明实施例所提供的方法一般由服务器1005执行,相应地,装置一般设置于服务器1005中。
应该理解,图10中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图11,其示出了适于用来实现本发明实施例的终端设备的计算机系统1100的结构示意图。图11示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1100包括中央处理单元(CPU)1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。在RAM 1103中,还存储有系统1100操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以传输、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括解析模块、调用模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,调用模块还可以被描述为“调用方法模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
服务端接收客户端传输的方法调用请求,解析所述方法调用请求中的传输协议,得到预设字段下的打标值;
在本地查询与所述打标值对应的方法,调用所述方法,得到调用结果并返回给客户端。
根据本发明实施例的技术方案,既涉及服务端和客户端交互过程中方法打标值列表的改进,同时也涉及方法打标值列表如何在传输协议中进行传输的问题,针对该情况:
1、修改传输协议,对于更新/同步情况添加预设字符串,例如约定0x01代表创建、0x02代表更新/同步,如传输协议被封装为0x02|HSN->com.xx.HelloService.hello(String name),表示需更新该方法打标值;
2、同样针对RPC服务传输部分,服务端和客户端在建立连接关系时,将方法涉及的类名、方法名、参数类型通过预热机制缓存起来并打上相同的标记,这样两者均缓存有调用方法一致的交互副本,之后正式交互式传输协议只需附带缓存的标记即可,使得传输协议整体的体积优化30%以上(由于传输协议差别,实际上体积优化的百分比不同),极大的提升了RPC服务框架的吞吐效率;
3、由于对传输机制的更新,所以对方法打标值列表更新和断线重连这块机制均有所重新设计,以保证服务端和客户端处的方法打标值的及时同步。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (15)
1.一种请求处理方法,其特征在于,包括:
服务端接收客户端传输的方法调用请求,解析所述方法调用请求中的传输协议,得到预设字段下的打标值;
在本地查询与所述打标值对应的方法,调用所述方法,得到调用结果并返回给客户端。
2.根据权利要求1所述的方法,其特征在于,打标值对应于方法涉及的类名、方法名和参数类型;
在所述服务端接收客户端传输的方法调用请求之前,还包括:
接收客户端传输的对方法调用列表的同步请求,将所述方法调用列表中各方法涉及的类名、方法名和参数类型缓存到本地并打标;
以预设字符串为协议头、所述方法调用列表和对各方法的打标值为协议体,封装得到一个新的传输协议并返回给客户端。
3.根据权利要求2所述的方法,其特征在于,在所述接收客户端传输的对方法调用列表的同步请求之前,还包括:
在启动过程中,与客户端预设的端口号建立绑定关系;以及
将服务发布到注册中心并标记为下线状态,以在监听到客户端传输的连接请求后,将所述服务标记为上线状态;其中,一个服务包括一个或多个方法。
4.根据权利要求1-3中任一项所述的方法,其特征在于,还包括:
响应于对一个或多个方法的变更打标值操作,将本地已缓存的打标值信息替换为变更后的当前打标值信息;
以预设字符串为协议头、所述当前打标值信息为协议体,封装得到一个新的传输协议并传输给客户端以更新方法打标值信息。
5.根据权利要求4所述的方法,其特征在于,在所述响应于对一个或多个方法的变更打标值操作之后,还包括:
判断是否设置有针对方法调用列表同步的热部署策略;
若未设置,则在重启服务端后,校验所述一个或多个方法当前的打标值信息是否和本地缓存的打标值信息一致;或
若设置,则在执行热部署策略后,扫描每个方法当前的打标值信息,以和本地缓存的方法打标值列表作对比。
6.根据权利要求1-3中任一项所述的方法,其特征在于,还包括:
在处理客户端请求的过程中,若监测到与客户端之间的连接出现闪断情况,则对客户端上报的心跳包进行连续计数;
若计数超过预设数值均未收到客户端上报的心跳包,则确定客户端处于掉线状态,并剔除与客户端之间的连接关系;
在网络恢复正常并收到客户端传输的连接请求后,重新建立与客户端之间的连接关系,之后在收到客户端传输的心跳包后,将所述连接关系标记为有效连接,以对客户端进行方法调用列表的同步操作。
7.一种请求处理方法,其特征在于,包括:
客户端接收用户对方法的调用请求,在本地查询对所述方法的打标值;
将所述打标值作为预设字段的字节内容,以封装得到传输协议;
将所述传输协议封装为新的调用请求并传输给服务端,之后接收服务端返回的调用结果,将所述调用结果返回给用户。
8.根据权利要求7所述的方法,其特征在于,打标值对应于方法涉及的类名、方法名和参数类型;
在客户端接收用户对方法的调用请求之前,还包括:
传输对方法调用列表的同步请求给服务端,接收服务端返回的结果;
若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值;
将所述方法调用列表和对各方法的打标值缓存到本地。
9.根据权利要求8所述的方法,其特征在于,所述传输对方法调用列表的同步请求给服务端,包括:
在注册中心通过负载均衡方式,查找当前负载最小的服务端;
传输连接请求给服务端,以建立与服务端之间的连接关系,进而通过所述连接关系,将对方法调用列表的同步请求传输给服务端。
10.根据权利要求7-9中任一项所述的方法,其特征在于,还包括:
在服务端处方法打标值更改的情况下,接收服务端传输的传输协议并解析,得到协议头和协议体;
若所述协议头为预设字符串,则基于所述协议体中的方法打标值信息,更新本地缓存的方法打标值信息。
11.根据权利要求7-9中任一项所述的方法,其特征在于,还包括:
若发生断线重连情况,则确定上一次连接的服务端,基于与服务端之间的连接信息,重新建立与服务端之间的连接关系;
封装心跳包并传输给服务端,同时传输对方法调用列表的同步请求给服务端,之后接收服务端返回的结果;
若所述结果中传输协议的协议头为预设字符串,则确定所述结果包括方法调用列表和对各方法的打标值;
基于所述方法调用列表和对各方法的打标值,更新本地缓存。
12.一种请求处理装置,其特征在于,包括:
解析模块,用于服务端接收客户端传输的方法调用请求,解析所述方法调用请求中的传输协议,得到预设字段下的打标值;
调用模块,用于在本地查询与所述打标值对应的方法,调用所述方法,得到调用结果并返回给客户端。
13.一种请求处理装置,其特征在于,包括:
接收模块,用于客户端接收用户对方法的调用请求,在本地查询对所述方法的打标值;
封装模块,用于将所述打标值作为预设字段的字节内容,以封装得到传输协议;
传输模块,用于将所述传输协议封装为新的调用请求并传输给服务端,之后接收服务端返回的调用结果,将所述调用结果返回给用户。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111060457.8A CN113722126A (zh) | 2021-09-09 | 2021-09-09 | 一种请求处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111060457.8A CN113722126A (zh) | 2021-09-09 | 2021-09-09 | 一种请求处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113722126A true CN113722126A (zh) | 2021-11-30 |
Family
ID=78683223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111060457.8A Pending CN113722126A (zh) | 2021-09-09 | 2021-09-09 | 一种请求处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113722126A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115473810A (zh) * | 2022-09-01 | 2022-12-13 | 珠海金山数字网络科技有限公司 | 双端同步脚本热更新方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841892A (zh) * | 2011-06-21 | 2012-12-26 | 中国科学院计算技术研究所 | 一种关系数据的服务封装系统和方法 |
US20150039675A1 (en) * | 2013-07-31 | 2015-02-05 | Microsoft Corporation | Messaging over http protocol for data exchange |
US9246819B1 (en) * | 2011-06-20 | 2016-01-26 | F5 Networks, Inc. | System and method for performing message-based load balancing |
US20170308419A1 (en) * | 2013-12-18 | 2017-10-26 | Amazon Technologies, Inc. | Parameter delegation for encapsulated services |
CN109714332A (zh) * | 2018-12-26 | 2019-05-03 | 北京字节跳动网络技术有限公司 | 基于Thrift和语法树解析的协议转换方法及装置 |
CN110446228A (zh) * | 2019-08-13 | 2019-11-12 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、终端设备及存储介质 |
CN112395096A (zh) * | 2019-08-13 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 远程函数调用的处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-09-09 CN CN202111060457.8A patent/CN113722126A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9246819B1 (en) * | 2011-06-20 | 2016-01-26 | F5 Networks, Inc. | System and method for performing message-based load balancing |
CN102841892A (zh) * | 2011-06-21 | 2012-12-26 | 中国科学院计算技术研究所 | 一种关系数据的服务封装系统和方法 |
US20150039675A1 (en) * | 2013-07-31 | 2015-02-05 | Microsoft Corporation | Messaging over http protocol for data exchange |
US20170308419A1 (en) * | 2013-12-18 | 2017-10-26 | Amazon Technologies, Inc. | Parameter delegation for encapsulated services |
CN109714332A (zh) * | 2018-12-26 | 2019-05-03 | 北京字节跳动网络技术有限公司 | 基于Thrift和语法树解析的协议转换方法及装置 |
CN110446228A (zh) * | 2019-08-13 | 2019-11-12 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、终端设备及存储介质 |
CN112395096A (zh) * | 2019-08-13 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 远程函数调用的处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
王剑;马跃;孙文;于波;: "关键包可靠网络协议的研究", 小型微型计算机系统, no. 12, 15 December 2013 (2013-12-15) * |
胡鹏;夏扬;曲爱妍;: "一种针对LDAP客户端与服务器通信的改进方案", 舰船电子工程, no. 01, 20 January 2015 (2015-01-20) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115473810A (zh) * | 2022-09-01 | 2022-12-13 | 珠海金山数字网络科技有限公司 | 双端同步脚本热更新方法及装置 |
CN115473810B (zh) * | 2022-09-01 | 2024-04-26 | 珠海金山数字网络科技有限公司 | 双端同步脚本热更新方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110311983B (zh) | 服务请求的处理方法、装置、系统、电子设备及存储介质 | |
CN101682635B (zh) | 复用式数据流协议 | |
CN102904959B (zh) | 网络加速方法和网关 | |
US9596313B2 (en) | Method, terminal, cache server and system for updating webpage data | |
US11108890B2 (en) | Management client and device monitoring | |
US10997376B2 (en) | Electronic message translation management | |
CN112565334B (zh) | 物联网设备的接入方法、装置及mqtt网关 | |
CN109347925B (zh) | 缓存方法、缓存边缘服务器、缓存核心服务器和缓存系统 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
US20150127837A1 (en) | Relay apparatus and data transfer method | |
US20120324056A1 (en) | Method and apparatus for hitless redundancy in data streaming | |
CN111726400A (zh) | 反向连接的方法、装置和服务端系统 | |
US20200228478A1 (en) | Electronic message control | |
CN113595927A (zh) | 一种旁路模式下镜像流量的处理方法和装置 | |
CN113722126A (zh) | 一种请求处理方法和装置 | |
CN111245831A (zh) | Ftp数据传输方法及装置、服务端和客户端的信息交互系统 | |
CN109981546B (zh) | 获取应用模块间的远程调用关系的方法和装置 | |
CN114500243B (zh) | 数据通信方法、装置、计算机可读介质及电子设备 | |
JP2003141002A (ja) | Url長変換システム及びそのプログラム | |
CN117336346A (zh) | 一种ippbx与pms对接状态转换方法、终端设备及介质 | |
CN113542324A (zh) | 一种消息推送方法和装置 | |
CN112068853A (zh) | 跨项目同步更新方法和装置 | |
CN113783826B (zh) | 一种微服务异常处理方法和装置 | |
CN115996187A (zh) | 路由信息处理方法、装置、路由信息交互系统和路由设备 | |
KR20050112912A (ko) | 소켓 어플리케이션 프로그램을 이용한 데이터 중계 시스템및 데이터 중계 방법 |
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 |