一种基于RPC服务的数据处理方法以及装置与流程

文档序号:14953047发布日期:2018-07-17 22:59阅读:196来源:国知局

本发明涉及互联网技术领域,尤其涉及一种基于rpc服务的数据处理方法以及装置。



背景技术:

目前的各种编码语言的多语言前端均可以对相同的后端服务进行rpc(remoteprocedurecallprotocol,远程过程调用协议)调用,例如,基于php(hypertextpreprocessor,超文本预处理器)的多语言前端可以对基于c++(计算机程序设计语言)的后端服务进行rpc调用,基于java(面向对象编程语言)的多语言前端也可以对基于c++的后端服务进行rpc调用。由于多语言前端可以实现服务集群信息的解析功能、路由容灾功能等等,所以若要对服务集群信息的解析功能、路由容灾功能进行更新升级,则需要为不同编码语言的多语言前端分别生成对应的升级代码。例如,基于php的多语言前端需要通过php升级代码对服务集群信息的解析功能、路由容灾功能进行更新升级,基于java的多语言前端需要通过java升级代码对服务集群信息的解析功能、路由容灾功能进行更新升级。由于需要对不同的编码语言的多语言前端分别生成不同编码语言的升级代码,所以目前的多语言前端将会造成很高的维护成本。



技术实现要素:

本发明实施例提供一种基于rpc服务的数据处理方法以及装置,可降低对多语言前端的维护成本。

本发明实施例提供了一种基于rpc服务的数据处理方法,包括:

代理服务装置获取多语言前端设备发起的远程过程调用协议rpc请求;所述rpc请求中的目标服务集群名和路由算法类型是由所述多语言前端设备基于预设数据存储协议进行封装得到的;

所述代理服务装置根据所述预设数据存储协议解析所述rpc请求中的目标服务集群名和路由算法类型;

所述代理服务装置基于本地的目标编码语言在预设的服务集群配置文件中获取与所述目标服务集群名相关联的至少一个服务设备信息,并基于所述目标编码语言在预设的路由算法集合中确定所述路由算法类型对应的目标路由算法;

根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,对所述目标服务设备信息对应的目标服务设备进行rpc访问。

相应地,本发明实施例还提供了一种基于rpc服务的数据处理装置,包括:

请求获取模块,用于获取多语言前端设备发起的远程过程调用协议rpc请求;所述rpc请求中的目标服务集群名和路由算法类型是由所述多语言前端设备基于预设数据存储协议进行封装得到的;

解析模块,用于根据所述预设数据存储协议解析所述rpc请求中的目标服务集群名和路由算法类型;

获取确定模块,用于基于本地的目标编码语言在预设的服务集群配置文件中获取与所述目标服务集群名相关联的至少一个服务设备信息,并基于所述目标编码语言在预设的路由算法集合中确定所述路由算法类型对应的目标路由算法;

访问处理模块,用于根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,对所述目标服务设备信息对应的目标服务设备进行rpc访问。

本发明实施例通过代理服务装置获取多语言前端设备发起的远程过程调用协议rpc请求;rpc请求中的目标服务集群名和路由算法类型是由多语言前端设备基于预设数据存储协议进行封装得到的;由于代理服务装置可以根据预设数据存储协议解析rpc请求中的目标服务集群名和路由算法类型,所以无论多语言前端设备对应的编码语言为哪一种,代理服务装置均可以通过预设数据存储协议识别rpc请求中的内容。代理服务装置可以进一步基于本地的目标编码语言在预设的服务集群配置文件中获取与目标服务集群名相关联的至少一个服务设备信息,并基于目标编码语言在预设的路由算法集合中确定路由算法类型对应的目标路由算法,并根据目标路由算法在至少一个服务设备信息中选择目标服务设备信息,对目标服务设备信息对应的目标服务设备进行rpc访问。由此可见,只需生成基于代理服务装置对应的目标编码语言的升级代码,即可通过该升级代码对集成于代理服务装置中的服务集群信息的解析功能、路由容灾功能进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护代理服务装置可以降低对多语言前端设备的维护成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种网络架构的结构示意图;

图2是本发明实施例提供的一种基于rpc服务的数据处理方法的流程示意图;

图3是本发明实施例提供的一种基于rpc服务的数据处理方法的时序示意图;

图4是本发明实施例提供的一种基于rpc服务的数据处理装置的结构示意图;

图5是本发明实施例提供的一种访问处理模块的结构示意图;

图6是本发明实施例提供的另一种基于rpc服务的数据处理装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,是本发明实施例提供的一种网络架构的结构示意图,所述网络架构可以包括多个多语言前端设备、代理服务装置、多个服务设备以及统计服务器,每个多语言前端设备均可以通过网络与所述代理服务装置进行通信连接,所述代理服务装置可以通过网络分别与各服务设备进行通信连接,所述代理服务装置还可以通过网络与所述统计服务器进行通信连接。所述多个多语言前端设备可以包括基于php语言的多语言前端设备、基于java语言的多语言前端设备、基于python(面向对象的解释型计算机程序设计语言)语言的多语言前端设备以及基于其他编码语言的多语言前端设备。以基于php语言的多语言前端设备为例,基于php语言的多语言前端设备可以将基于php语言的目标服务集群名和路由算法类型转换为基于预设数据存储协议的目标服务集群名和路由算法类型,再将基于预设数据存储协议的目标服务集群名和路由算法类型封装到rpc请求中,再将该rpc请求发送到所述代理服务装置,所述代理服务装置可以根据所述预设数据存储协议解析所述rpc请求中的目标服务集群名和路由算法类型,并基于本地的目标编码语言(如代理服务装置对应的目标编码语言为c++语言)在预设的服务集群配置文件中获取与所述目标服务集群名相关联的至少一个服务设备信息,并基于所述目标编码语言在预设的路由算法集合中确定所述路由算法类型对应的目标路由算法,根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,对所述目标服务设备信息对应的目标服务设备(该目标服务设备可以为图1中的多个服务设备中的任意一个服务设备)进行rpc访问。所述代理服务装置还可以进一步周期性地将每次的rpc访问的日志信息上报到所述统计服务器。对于其他语言的多语言前端设备也同样可以通过所述代理服务装置实现上述的rpc访问。由此可见,只需生成基于代理服务装置对应的目标编码语言的升级代码,即可通过该升级代码对集成于代理服务装置中的服务集群信息的解析功能、路由容灾功能进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护代理服务装置可以降低对多语言前端设备的维护成本。

可选的,每个多语言前端设备均可以分别连接一个代理服务装置,各代理服务装置均可以执行上述的rpc访问,且各代理服务装置对应的目标编码语言均相同(如都是c++语言),因此,在对各个代理服务装置中的服务集群信息的解析功能、路由容灾功能进行更新升级时,也只需生成基于该目标编码语言的升级代码即可。

可选的,每个多语言前端设备的内部均可以内置一个代理服务装置,各代理服务装置均可以执行上述的rpc访问,其中,多语言前端设备可以通过进程通信的方式将rpc请求传递给内部的代理服务装置,且各代理服务装置对应的目标编码语言均相同(如都是c++语言),因此,在对各个代理服务装置中的服务集群信息的解析功能、路由容灾功能进行更新升级时,也只需生成基于该目标编码语言的升级代码即可。

请参见图2,是本发明实施例提供的一种基于rpc服务的数据处理方法的流程示意图,所述方法可以包括:

s201,代理服务装置获取多语言前端设备发起的远程过程调用协议rpc请求;所述rpc请求中的目标服务集群名和路由算法类型是由所述多语言前端设备基于预设数据存储协议进行封装得到的;

具体的,所述代理服务装置可以应用于所述多语言前端设备的内部(如每一个多语言前端设备内部均有一个代理服务装置),所述代理服务装置也可以为独立于所述多语言前端设备之外的单独设备(如多个多语言前端设备均可以与一个代理服务装置进行通信连接,或者一个多语言前端设备与一个代理服务装置进行通信连接)。现有技术中的多语言前端中的服务集群信息的解析功能、路由容灾功能、统计上报功能均可以分离出来到所述代理服务装置中,即将服务集群信息的解析功能、路由容灾功能、统计上报功能集成到所述代理服务装置中。多语言前端设备可以包括多种编码语言的多语言前端设备,例如,有基于php语言的多语言前端设备,有基于java语言的多语言前端设备,也有基于python语言的多语言前端设备等等。而无论多语言前端设备对应的编码语言是哪一种,这些多语言前端设备分别对应的代理服务装置均具备相同的编码语言,例如,基于java语言的多语言前端设备对应基于c++语言的代理服务装置,基于python语言的多语言前端设备也是对应基于c++语言的代理服务装置,由于不同的代理服务装置对应的编码语言均相同,所以若要对服务集群信息的解析功能、路由容灾功能、统计上报功能进行更新升级,则只需生成一份基于c++语言的升级代码,以通过基于c++语言的升级代码对各个代理服务装置进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护代理服务装置可以降低对多语言前端设备的维护成本。

进一步的,为了保证代理服务装置可以识别多语言前端设备所发起的rpc请求,所述多语言前端设备可以将基于前端编码语言(如php语言)的目标服务集群名和路由算法类型转换为基于预设数据存储协议的目标服务集群名和路由算法类型,再将基于预设数据存储协议的目标服务集群名和路由算法类型封装到所述rpc请求中。所述预设数据存储协议是可将多种编码语言分别对应的数据存储格式转换为统一的预设数据存储格式的协议;具备不同编码语言的多个多语言前端设备分别发起的rpc请求中的目标服务集群名和路由算法类型均具备所述预设数据存储格式。进一步的,所述预设数据存储协议可以具体为protobuf(gooleprotocolbuffer,一种轻便高效的结构化数据存储格式)协议,protobuf协议本身是天然支持多种编码语言的协议,其中,所述rpc请求中的目标服务集群名和路由算法类型可以是一段protobuf协议序列。例如,基于java语言的多语言前端设备所生成的rpc请求可以包含一段protobuf协议序列,基于python语言的多语言前端设备所生成的rpc请求也可以包含一段protobuf协议序列。

可选的,所述rpc请求中的protobuf协议序列还可以进一步包括rpc调用重试次数阈值、回包指示信息(即指示是否需要返回响应消息)、数据传输协议类型,因此,所述代理服务装置获取到rpc调用重试次数阈值、回包指示信息、数据传输协议类型后,所述代理服务装置可以在调用rpc接口超时失败时重新调用该rpc接口,直到重新调用次数达到所述rpc调用重试次数阈值时再根据所述目标路由算法调用其他服务设备的rpc接口;通过所述回包指示信息可以通知所述目标服务设备在调用rpc成功时需要反馈调用成功消息;所述代理服务装置还可以基于所述数据传输协议类型与所述目标服务设备进行数据传输,所述数据传输协议类型可以为tcp(transmissioncontrolprotocol,传输控制协议)协议或udp(userdatagramprotocol,用户数据报协议)协议。

s202,所述代理服务装置根据所述预设数据存储协议解析所述rpc请求中的目标服务集群名和路由算法类型;

具体的,所述多语言前端设备发送所述rpc请求到所述代理服务装置后(若所述代理服务装置内置于所述多语言前端设备,则所述多语言前端设备通过内部进程通信将所述rpc请求传递至所述代理服务装置),所述代理服务装置可以根据所述预设数据存储协议解析所述rpc请求中的目标服务集群名和路由算法类型(具体可以基于protobuf协议解析所述rpc请求中的protobuf协议序列,以识别出所述protobuf协议序列中的目标服务集群名和路由算法类型)。

s203,所述代理服务装置基于本地的目标编码语言在预设的服务集群配置文件中获取与所述目标服务集群名相关联的至少一个服务设备信息,并基于所述目标编码语言在预设的路由算法集合中确定所述路由算法类型对应的目标路由算法;

具体的,所述代理服务装置可以基于本地的目标编码语言(如c++语言)在预设的服务集群配置文件中获取与所述目标服务集群名相关联的至少一个服务设备信息。例如,所述服务集群配置文件包括多个服务集群名以及与各服务集群名相关联的至少一个服务设备信息,其中,目标服务集群名为服务集群名a,进而所述代理服务装置可以从所述服务集群配置文件中获取到与所述服务集群名a相关联的服务设备信息a、服务设备信息b、服务设备信息c。其中,所述服务设备信息可以包括服务设备的ip端口信息。

所述代理服务装置进一步基于所述目标编码语言在预设的路由算法集合中确定所述路由算法类型对应的目标路由算法(如一致性哈希算法)。

s204,根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,对所述目标服务设备信息对应的目标服务设备进行rpc访问;

具体的,所述代理服务装置可以根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息(具体可以根据各服务设备信息分别对应的服务设备的负载情况进行选择),并调用与所述目标服务设备信息对应的目标服务设备的rpc接口;若接收到所述目标服务设备反馈的调用成功消息,则可以基于所述目标服务设备的rpc接口对所述目标服务设备进行rpc访问,并进一步基于所述rpc访问获取所述目标服务设备发送的业务数据包,并基于所述预设数据存储协议对所述业务数据包进行封装,并将封装后的基于所述预设数据存储协议的业务数据包发送到所述多语言前端设备,以使所述多语言前端设备根据所述预设数据存储协议解析所接收到的业务数据包,进而完成了所述多语言前端设备与所述目标服务设备之间的rpc访问。虽然所述多语言前端设备与所述代理服务装置分别对应的编码语言不同,但是所述多语言前端设备与所述代理服务装置之间所传输的数据可以通过所述预设数据存储协议进行转换,进而使得双方都可以对转换后的基于所述预设数据存储协议的数据进行识别。

可选的,在调用与所述目标服务设备信息对应的目标服务设备的rpc接口之后,若检测到调用所述目标服务设备的rpc接口超时失败,则根据所述目标路由算法在所述至少一个服务设备信息中选择新目标服务设备信息,并调用与所述新目标服务设备信息对应的新目标服务设备的rpc接口;若接收到所述新目标服务设备反馈的调用成功消息,则基于所述新目标服务设备的rpc接口对所述新目标服务设备进行rpc访问。进一步的,可以记录与所述目标服务设备对应的rpc访问失败日志信息,并记录与所述新目标服务设备对应的rpc访问成功日志信息,并由本地设置的信息上报进程周期性将所述rpc访问失败日志信息和所述rpc访问成功日志信息上报至统计服务器。

可选的,所述代理服务装置还可以基于所述目标编码语言更新所述服务集群配置文件、所述路由算法集合以及所述信息上报进程。具体可以根据基于所述目标编码语言的更新升级代码对所述服务集群配置文件、所述路由算法集合以及所述信息上报进程进行更新,以实现对服务集群信息的解析功能、路由容灾功能、统计上报功能进行更新升级。由于只需通过基于目标编码语言的升级代码对各个代理服务装置进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护代理服务装置可以降低对多语言前端设备的维护成本。

本发明实施例通过代理服务装置获取多语言前端设备发起的远程过程调用协议rpc请求;rpc请求中的目标服务集群名和路由算法类型是由多语言前端设备基于预设数据存储协议进行封装得到的;由于代理服务装置可以根据预设数据存储协议解析rpc请求中的目标服务集群名和路由算法类型,所以无论多语言前端设备对应的编码语言为哪一种,代理服务装置均可以通过预设数据存储协议识别rpc请求中的内容。代理服务装置可以进一步基于本地的目标编码语言在预设的服务集群配置文件中获取与目标服务集群名相关联的至少一个服务设备信息,并基于目标编码语言在预设的路由算法集合中确定路由算法类型对应的目标路由算法,并根据目标路由算法在至少一个服务设备信息中选择目标服务设备信息,对目标服务设备信息对应的目标服务设备进行rpc访问。由此可见,只需生成基于代理服务装置对应的目标编码语言的升级代码,即可通过该升级代码对集成于代理服务装置中的服务集群信息的解析功能、路由容灾功能进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护代理服务装置可以降低对多语言前端设备的维护成本。

请参见图3,是本发明实施例提供的一种基于rpc服务的数据处理方法的时序示意图,所述方法可以包括:

s301,多语言前端设备基于预设数据存储协议生成rpc请求;

具体的,多语言前端设备可以包括多种编码语言的多语言前端设备,例如,有基于php语言的多语言前端设备,有基于java语言的多语言前端设备,也有基于python语言的多语言前端设备等等。所述多语言前端设备可以将基于前端编码语言(如php语言)的目标服务集群名和路由算法类型转换为基于预设数据存储协议的目标服务集群名和路由算法类型,再将基于预设数据存储协议的目标服务集群名和路由算法类型封装到rpc请求中。所述预设数据存储协议是可将多种编码语言分别对应的数据存储格式转换为统一的预设数据存储格式的协议;具备不同编码语言的多个多语言前端设备分别发起的rpc请求中的目标服务集群名和路由算法类型均具备所述预设数据存储格式。进一步的,所述预设数据存储协议可以具体为protobuf协议,protobuf协议本身是天然支持多种编码语言的协议,其中,所述rpc请求中的目标服务集群名和路由算法类型可以是一段protobuf协议序列。例如,基于java语言的多语言前端设备所生成的rpc请求可以包含一段protobuf协议序列,基于python语言的多语言前端设备所生成的rpc请求也可以包含一段protobuf协议序列。

可选的,所述rpc请求中的protobuf协议序列还可以进一步包括rpc调用重试次数阈值、回包指示信息(即指示是否需要返回响应消息)、数据传输协议类型,因此,所述代理服务装置获取到rpc调用重试次数阈值、回包指示信息、数据传输协议类型后,所述代理服务装置可以在调用rpc接口超时失败时重新调用该rpc接口,直到重新调用次数达到所述rpc调用重试次数阈值时再根据所述目标路由算法调用其他服务设备的rpc接口;通过所述回包指示信息可以通知所述目标服务设备在调用rpc成功时需要反馈调用成功消息;所述代理服务装置还可以基于所述数据传输协议类型与所述目标服务设备进行数据传输,所述数据传输协议类型可以为tcp协议或udp协议。

s302,所述多语言前端设备发送rpc请求到代理服务装置;

具体的,所述代理服务装置可以应用于所述多语言前端设备的内部(如每一个多语言前端设备内部均有一个代理服务装置),所述代理服务装置也可以为独立于所述多语言前端设备之外的单独设备(如多个多语言前端设备均可以与一个代理服务装置进行通信连接,或者一个多语言前端设备与一个代理服务装置进行通信连接)。现有技术中的多语言前端中的服务集群信息的解析功能、路由容灾功能、统计上报功能均可以分离出来到所述代理服务装置中,即将服务集群信息的解析功能、路由容灾功能、统计上报功能集成到所述代理服务装置中。

s303,所述代理服务装置解析所述rpc请求;

具体的,所述多语言前端设备发送所述rpc请求到所述代理服务装置后(若所述代理服务装置内置于所述多语言前端设备,则所述多语言前端设备通过内部进程通信将所述rpc请求传递至所述代理服务装置),所述代理服务装置可以根据所述预设数据存储协议解析所述rpc请求中的目标服务集群名和路由算法类型(具体可以基于protobuf协议解析所述rpc请求中的protobuf协议序列,以识别出所述protobuf协议序列中的目标服务集群名和路由算法类型)。

s304,所述代理服务装置根据所述rpc请求中的目标服务集群名和目标路由算法选择第一服务设备信息;

具体的,所述代理服务装置可以基于本地的目标编码语言(如c++语言)在预设的服务集群配置文件中获取与所述目标服务集群名相关联的至少一个服务设备信息。例如,所述服务集群配置文件包括多个服务集群名以及与各服务集群名相关联的至少一个服务设备信息,其中,目标服务集群名为服务集群名a,进而所述代理服务装置可以从所述服务集群配置文件中获取到与所述服务集群名a相关联的第一服务设备信息、第二服务设备信息、第三服务设备信息。其中,所述服务设备信息可以包括服务设备的ip端口信息。

所述代理服务装置进一步基于所述目标编码语言在预设的路由算法集合中确定所述路由算法类型对应的目标路由算法(如一致性哈希算法),并根据所述目标路由算法在所述至少一个服务设备信息中选择第一服务设备信息。

s305,所述代理服务装置调用第一服务设备的rpc接口;

具体的,所述代理服务装置调用与所述第一服务设备信息对应的第一服务设备的rpc接口。

s306,所述代理服务装置若检测到调用rpc接口超时失败,根据所述目标路由算法重新选择第二服务设备信息;

具体的,若所述代理服务装置检测到调用所述第一服务设备的rpc接口超时失败,则可以进一步根据所述目标路由算法在所述至少一个服务设备信息中选择第二服务设备信息。

s307,所述代理服务装置调用第二服务设备的rpc接口;

具体的,所述代理服务装置调用所述第二服务设备信息对应的第二服务设备的rpc接口。

s308,所述第二服务设备反馈调用成功消息;

s309,所述代理服务装置基于所述第二服务设备的rpc接口对所述第二服务设备进行rpc访问;

具体的,所述代理服务装置在接收到所述第二服务设备反馈的调用成功消息后,可以进一步基于所述第二服务设备的rpc接口对所述第二服务设备进行rpc访问。所述代理服务装置可以进一步基于所述rpc访问获取所述第二服务设备发送的业务数据包,并基于所述预设数据存储协议对所述业务数据包进行封装,并将封装后的基于所述预设数据存储协议的业务数据包发送到所述多语言前端设备,以使所述多语言前端设备根据所述预设数据存储协议解析所接收到的业务数据包,进而完成了所述多语言前端设备与所述第二服务设备之间的rpc访问。虽然所述多语言前端设备与所述代理服务装置分别对应的编码语言不同,但是所述多语言前端设备与所述代理服务装置之间所传输的数据可以通过所述预设数据存储协议进行转换,进而使得双方都可以对转换后的基于所述预设数据存储协议的数据进行识别。

s310,所述代理服务装置记录与第一服务设备对应的rpc访问失败日志信息以及与第二服务设备对应的rpc访问成功日志信息;

s311,所述代理服务装置将与第一服务设备对应的rpc访问失败日志信息以及与第二服务设备对应的rpc访问成功日志信息上报到统计服务器;

具体的,所述代理服务装置还可以记录与所述第一服务设备对应的rpc访问失败日志信息,并记录与所述第二服务设备对应的rpc访问成功日志信息,并由本地设置的信息上报进程周期性将各种rpc访问失败日志信息和各种rpc访问成功日志信息上报至所述统计服务器。

可选的,所述代理服务装置还可以基于所述目标编码语言更新所述服务集群配置文件、所述路由算法集合以及所述信息上报进程。具体可以根据基于所述目标编码语言的更新升级代码对所述服务集群配置文件、所述路由算法集合以及所述信息上报进程进行更新,以实现对服务集群信息的解析功能、路由容灾功能、统计上报功能进行更新升级。由于只需通过基于目标编码语言的升级代码对各个代理服务装置进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护代理服务装置可以降低对多语言前端设备的维护成本。

本发明实施例通过代理服务装置获取多语言前端设备发起的远程过程调用协议rpc请求;rpc请求中的目标服务集群名和路由算法类型是由多语言前端设备基于预设数据存储协议进行封装得到的;由于代理服务装置可以根据预设数据存储协议解析rpc请求中的目标服务集群名和路由算法类型,所以无论多语言前端设备对应的编码语言为哪一种,代理服务装置均可以通过预设数据存储协议识别rpc请求中的内容。代理服务装置可以进一步基于本地的目标编码语言在预设的服务集群配置文件中获取与目标服务集群名相关联的至少一个服务设备信息,并基于目标编码语言在预设的路由算法集合中确定路由算法类型对应的目标路由算法,并根据目标路由算法在至少一个服务设备信息中选择第二服务设备信息,对第二服务设备信息对应的第二服务设备进行rpc访问。由此可见,只需生成基于代理服务装置对应的目标编码语言的升级代码,即可通过该升级代码对集成于代理服务装置中的服务集群信息的解析功能、路由容灾功能进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护代理服务装置可以降低对多语言前端设备的维护成本。

请参见图4,是本发明实施例提供的一种基于rpc服务的数据处理装置1的结构示意图,所述基于rpc服务的数据处理装置1可以包括:请求获取模块10、解析模块20、获取确定模块30、访问处理模块40、记录上报模块50、更新模块60、业务数据处理模块70;

所述请求获取模块10,用于获取多语言前端设备发起的远程过程调用协议rpc请求;所述rpc请求中的目标服务集群名和路由算法类型是由所述多语言前端设备基于预设数据存储协议进行封装得到的;

所述解析模块20,用于根据所述预设数据存储协议解析所述rpc请求中的目标服务集群名和路由算法类型;

所述获取确定模块30,用于基于本地的目标编码语言在预设的服务集群配置文件中获取与所述目标服务集群名相关联的至少一个服务设备信息,并基于所述目标编码语言在预设的路由算法集合中确定所述路由算法类型对应的目标路由算法;

其中,所述请求获取模块10、所述解析模块20以及所述获取确定模块30的具体功能实现方式可以参见上述图2对应实施例中的s201-s203,这里不再进行赘述。

所述访问处理模块40,用于根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,对所述目标服务设备信息对应的目标服务设备进行rpc访问;

所述业务数据处理模块70,用于基于所述rpc访问获取所述目标服务设备发送的业务数据包,并基于所述预设数据存储协议对所述业务数据包进行封装,并将封装后的基于所述预设数据存储协议的业务数据包发送到所述多语言前端设备,以使所述多语言前端设备根据所述预设数据存储协议解析所接收到的业务数据包;

具体的,当所述访问处理模块40成功调用所述目标服务设备的rpc接口时,所述访问处理模块40可以对所述目标服务设备进行正常的rpc访问,进而所述业务数据处理模块70可以基于所述rpc访问获取所述目标服务设备发送的业务数据包,并基于所述预设数据存储协议对所述业务数据包进行封装,并将封装后的基于所述预设数据存储协议的业务数据包发送到所述多语言前端设备,以使所述多语言前端设备根据所述预设数据存储协议解析所接收到的业务数据包,进而完成了所述多语言前端设备与所述目标服务设备之间的rpc访问。虽然所述多语言前端设备与所述基于rpc服务的数据处理装置1分别对应的编码语言不同,但是所述多语言前端设备与所述基于rpc服务的数据处理装置1之间所传输的数据可以通过所述预设数据存储协议进行转换,进而使得双方都可以对转换后的基于所述预设数据存储协议的数据进行识别。

进一步的,请一并参见图5,是本发明实施例提供的一种访问处理模块40的结构示意图,所述访问处理模块40可以包括:接口调用单元401、通知单元402、访问单元403;

所述接口调用单元401,用于根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,并调用与所述目标服务设备信息对应的目标服务设备的rpc接口;

所述通知单元402,用于若检测到调用所述目标服务设备的rpc接口超时失败,则通知所述接口调用单元401根据所述目标路由算法在所述至少一个服务设备信息中选择新目标服务设备信息,并调用与所述新目标服务设备信息对应的新目标服务设备的rpc接口;

所述访问单元403,用于若接收到所述新目标服务设备反馈的调用成功消息,则基于所述新目标服务设备的rpc接口对所述新目标服务设备进行rpc访问。

其中,所述接口调用单元401、所述通知单元402以及所述访问单元403的具体功能实现方式可以参见上述图3对应实施例中的s304-s309,这里不再进行赘述。

其中,当所述接口调用单元401、所述通知单元402以及所述访问单元403在执行相应操作时,所述记录上报模块50可以用于记录与所述目标服务设备对应的rpc访问失败日志信息,并记录与所述新目标服务设备对应的rpc访问成功日志信息,并由本地设置的信息上报进程周期性将所述rpc访问失败日志信息和所述rpc访问成功日志信息上报至统计服务器;

其中,所述记录上报模块50的具体功能实现方式可以参见上述图3对应实施例中的s310-s311,这里不再进行赘述。

所述更新模块60,用于基于所述目标编码语言更新所述服务集群配置文件、所述路由算法集合以及所述信息上报进程;

具体的,所述更新模块60可以根据基于所述目标编码语言的更新升级代码对所述服务集群配置文件、所述路由算法集合以及所述信息上报进程进行更新,以实现对服务集群信息的解析功能、路由容灾功能、统计上报功能进行更新升级。由于只需通过基于目标编码语言的升级代码对各个基于rpc服务的数据处理装置1进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护基于rpc服务的数据处理装置1可以降低对多语言前端设备的维护成本。

本发明实施例通过基于rpc服务的数据处理装置1获取多语言前端设备发起的远程过程调用协议rpc请求;rpc请求中的目标服务集群名和路由算法类型是由多语言前端设备基于预设数据存储协议进行封装得到的;由于基于rpc服务的数据处理装置1可以根据预设数据存储协议解析rpc请求中的目标服务集群名和路由算法类型,所以无论多语言前端设备对应的编码语言为哪一种,基于rpc服务的数据处理装置1均可以通过预设数据存储协议识别rpc请求中的内容。基于rpc服务的数据处理装置1可以进一步基于本地的目标编码语言在预设的服务集群配置文件中获取与目标服务集群名相关联的至少一个服务设备信息,并基于目标编码语言在预设的路由算法集合中确定路由算法类型对应的目标路由算法,并根据目标路由算法在至少一个服务设备信息中选择第二服务设备信息,对第二服务设备信息对应的第二服务设备进行rpc访问。由此可见,只需生成基于rpc服务的数据处理装置1对应的目标编码语言的升级代码,即可通过该升级代码对集成于基于rpc服务的数据处理装置1中的服务集群信息的解析功能、路由容灾功能进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护基于rpc服务的数据处理装置1可以降低对多语言前端设备的维护成本。

请参见图6,是本发明实施例提供的另一种基于rpc服务的数据处理装置1000的结构示意图。如图6所示,所述基于rpc服务的数据处理装置1000可以包括:至少一个处理器1001,例如cpu,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图6所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

在图6所示的基于rpc服务的数据处理装置1000中,网络接口1004主要用于连接多语言前端设备以及服务设备;而用户接口1003主要用于为用户提供输入的接口,获取用户输出的数据;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现

获取多语言前端设备发起的远程过程调用协议rpc请求;所述rpc请求中的目标服务集群名和路由算法类型是由所述多语言前端设备基于预设数据存储协议进行封装得到的;

根据所述预设数据存储协议解析所述rpc请求中的目标服务集群名和路由算法类型;

基于本地的目标编码语言在预设的服务集群配置文件中获取与所述目标服务集群名相关联的至少一个服务设备信息,并基于所述目标编码语言在预设的路由算法集合中确定所述路由算法类型对应的目标路由算法;

根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,对所述目标服务设备信息对应的目标服务设备进行rpc访问。

在一个实施例中,所述处理器1001在执行根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,对所述目标服务设备信息对应的目标服务设备进行rpc访问之后,还执行以下步骤:

基于所述rpc访问获取所述目标服务设备发送的业务数据包,并基于所述预设数据存储协议对所述业务数据包进行封装,并将封装后的基于所述预设数据存储协议的业务数据包发送到所述多语言前端设备,以使所述多语言前端设备根据所述预设数据存储协议解析所接收到的业务数据包。

在一个实施例中,所述处理器1001在执行根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,对所述目标服务设备信息对应的目标服务设备进行rpc访问时,具体执行以下步骤:

根据所述目标路由算法在所述至少一个服务设备信息中选择目标服务设备信息,并调用与所述目标服务设备信息对应的目标服务设备的rpc接口;

若检测到调用所述目标服务设备的rpc接口超时失败,则根据所述目标路由算法在所述至少一个服务设备信息中选择新目标服务设备信息,并调用与所述新目标服务设备信息对应的新目标服务设备的rpc接口;

若接收到所述新目标服务设备反馈的调用成功消息,则基于所述新目标服务设备的rpc接口对所述新目标服务设备进行rpc访问。

在一个实施例中,所述处理器1001还执行以下步骤:

记录与所述目标服务设备对应的rpc访问失败日志信息,并记录与所述新目标服务设备对应的rpc访问成功日志信息,并由本地设置的信息上报进程周期性将所述rpc访问失败日志信息和所述rpc访问成功日志信息上报至统计服务器。

在一个实施例中,所述处理器1001还执行以下步骤:

基于所述目标编码语言更新所述服务集群配置文件、所述路由算法集合以及所述信息上报进程。

在一个实施例中,所述预设数据存储协议是可将多种编码语言分别对应的数据存储格式转换为统一的预设数据存储格式的协议;具备不同编码语言的多个多语言前端设备分别发起的rpc请求中的目标服务集群名和路由算法类型均具备所述预设数据存储格式。

本发明实施例通过基于rpc服务的数据处理装置1000获取多语言前端设备发起的远程过程调用协议rpc请求;rpc请求中的目标服务集群名和路由算法类型是由多语言前端设备基于预设数据存储协议进行封装得到的;由于基于rpc服务的数据处理装置1000可以根据预设数据存储协议解析rpc请求中的目标服务集群名和路由算法类型,所以无论多语言前端设备对应的编码语言为哪一种,基于rpc服务的数据处理装置1000均可以通过预设数据存储协议识别rpc请求中的内容。基于rpc服务的数据处理装置1000可以进一步基于本地的目标编码语言在预设的服务集群配置文件中获取与目标服务集群名相关联的至少一个服务设备信息,并基于目标编码语言在预设的路由算法集合中确定路由算法类型对应的目标路由算法,并根据目标路由算法在至少一个服务设备信息中选择目标服务设备信息,对目标服务设备信息对应的目标服务设备进行rpc访问。由此可见,只需生成基于rpc服务的数据处理装置1000对应的目标编码语言的升级代码,即可通过该升级代码对集成于基于rpc服务的数据处理装置1000中的服务集群信息的解析功能、路由容灾功能进行更新升级,从而无需生成多个不同编码语言的升级代码,因此,通过维护基于rpc服务的数据处理装置1000可以降低对多语言前端设备的维护成本。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1