首页> 中国专利> 远程过程调用服务的启动方法和装置、服务器、存储介质

远程过程调用服务的启动方法和装置、服务器、存储介质

摘要

本公开关于一种远程过程调用服务的启动方法和装置、服务器、存储介质,涉及微服务管理领域,能够提高远程过程调用服务器的启动效率。该方法包括:获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数;启动配置参数用于支持远程过程调用服务的运行;根据远程过程调用服务的标识和启动配置参数启动远程过程调用服务;在至少一个目标服务器上建立将远程过程调用服务的实例。

著录项

  • 公开/公告号CN112463408A

    专利类型发明专利

  • 公开/公告日2021-03-09

    原文格式PDF

  • 申请/专利权人 北京达佳互联信息技术有限公司;

    申请/专利号CN202011349677.8

  • 发明设计人 魏诗白;

    申请日2020-11-26

  • 分类号G06F9/54(20060101);G06F9/445(20180101);

  • 代理机构11274 北京中博世达专利商标代理有限公司;

  • 代理人申健

  • 地址 100085 北京市海淀区上地西路6号1幢1层101D1-7

  • 入库时间 2023-06-19 10:08:35

说明书

技术领域

本公开实施例涉及微服务管理领域,尤其涉及一种远程过程调用服务的启动方法和装置、服务器、存储介质。

背景技术

分布式系统可以将应用(或任务)由独立的服务器或计算机执行,更合理的利用了计算资源,提高了网络效益。但是,在实际应用中,不同的应用(或任务)之间可能存在相互调用的关系。例如:部署在A服务器中的应用需要调用B服务器上部署的应用中的函数/数据。

目前,A服务器使用远程过程调用(remote procedure cal l,RPC)服务,使得A服务器可以像调用本地应用一样,调用B服务器中的应用。但是,现有的用于提供远程过程调用服务的远程过程调用框架在开启一个进程时,只能启动一个远程过程调用服务,无法满足日益增长的远程过程调用服务需求,使得用户请求远程过程调用服务所需的时间较长,用户体验较差。

发明内容

本公开关于一种远程过程调用服务的启动方法和装置、服务器、存储介质,能够提高远程过程调用服务器的启动效率。

为达到上述目的,本公开实施例采用如下技术方案:

第一方面,提供一种远程过程调用服务的启动方法,包括:获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数;启动配置参数用于支持远程过程调用服务的运行;根据远程过程调用服务的标识和启动配置参数启动远程过程调用服务;在至少一个目标服务器上建立远程过程调用服务的实例。可选的,获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数之前还包括:获取远程过程调用服务对应的环境参数;环境参数至少包括以下子参数:日志路径、埋点参数、上报参数;埋点参数用于指示埋点代理能力是否开启;上报参数用于指示远程过程调用服务的状态信息是否上报;运行远程过程调用服务的环境参数,以使远程过程调用服务的环境参数生效。

可选的,获取远程过程调用服务的环境参数,包括:接收环境配置指令;环境配置指令携带有远程过程调用服务对应的环境参数中子参数的任一项或多项;将远程过程调用服务对应的环境参数中未存在于环境配置指令中的子参数,设定为默认值。

可选的,获取启动配置参数,包括:接收命令行提示符;命令行提示符中包括启动配置参数中子参数的任一项或多项;将启动配置参数中未存在于命令行提示符中的子参数,设定为默认值。

可选的,获取启动配置参数包括:通过预设应用程序接口接收编程指令;编程指令中包括启动配置参数中子参数的任一项或多项;将启动配置参数中未存在于编程指令中的子参数,设定为默认值。

可选的,在至少一个目标服务器上建立远程过程调用服务的实例包括:接收实例化指令;实例化指令用于指示在至少一个目标服务器上建立远程过程调用服务的实例;实例化指令至少携带有:每一个目标服务器的目标权重和每一个目标服务器对应的预设时间长度;权重用于表明目标服务器承载远程过程调用服务请求的能力大小;在目标服务器上建立远程过程调用服务的实例,并将目标服务器的权重设定为初始权重;在目标服务器对应的预设时间长度内使用预设权重爬坡机制将初始权重提升为目标服务器对应的目标权重。

可选的,在至少一个目标服务器上建立远程过程调用服务的实例之后,还包括:在服务注册中心注册远程过程调用服务对应的服务注册信息;服务注册信息包括:远程过程调用服务的标识,和远程过程调用服务的实例所在的目标服务器的网络互连协议地址及其被远程过程调用服务占用的端口号。

可选的,在服务注册中心注册远程过程调用服务对应的服务注册信息之后,还包括:接收分组指令;根据分组指令将所有远程过程调用服务分为预设个数个组,并将分组结果存储在服务注册中心。

可选的,在至少一个目标服务器上建立远程过程调用服务的实例之前,还包括:接收携带有定制参数的停机定制指令;停机定制指令用于指示开启预设钩子程序;预设钩子程序用于使其所在的应用程序在接收到停止指令后,停止接收访问请求,并在处理完已接收到的访问请求后停止应用程序;根据定制参数在远程过程调用服务中加载预设钩子程序。

第二方面,提供一种远程过程调用服务的启动装置,包括:获取模块、启动模块和实例模块。其中,获取模块,被配置为获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数;启动配置参数用于支持远程过程调用服务的运行;启动模块,被配置为根据获取模块获取的远程过程调用服务的标识和启动配置参数启动远程过程调用服务;实例模块,被配置为在至少一个目标服务器上建立启动模块启动的远程过程调用服务的实例。

可选的,还包括环境模块;获取模块还被配置为在获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数之前,获取远程过程调用服务对应的环境参数;环境参数至少包括以下子参数:日志路径、埋点参数、上报参数;埋点参数用于指示埋点代理能力是否开启;上报参数用于指示远程过程调用服务的状态信息是否上报;环境模块,被配置为运行获取模块获取的远程过程调用服务的环境参数,以使远程过程调用服务的环境参数生效。

可选的,获取模块具体被配置为:接收环境配置指令;环境配置指令携带有远程过程调用服务对应的环境参数中子参数的任一项或多项;将远程过程调用服务对应的环境参数中未存在于环境配置指令中的子参数,设定为默认值。

可选的,获取模块具体被配置为:接收命令行提示符;命令行提示符中包括启动配置参数中子参数的任一项或多项;将启动配置参数中未存在于命令行提示符中的子参数,设定为默认值。

可选的,获取模块具体被配置为:通过预设应用程序接口接收编程指令;编程指令中包括启动配置参数中子参数的任一项或多项;将启动配置参数中未存在于编程指令中的子参数,设定为默认值。

可选的,实例模块具体被配置为:接收实例化指令;实例化指令用于指示在至少一个目标服务器上建立启动模块启动的远程过程调用服务的实例;实例化指令至少携带有:每一个目标服务器的目标权重和每一个目标服务器对应的预设时间长度;权重用于表明目标服务器承载远程过程调用服务请求的能力大小;在目标服务器上建立远程过程调用服务的实例,并将目标服务器的权重设定为初始权重;在目标服务器对应的预设时间长度内使用预设权重爬坡机制将初始权重提升为目标服务器对应的目标权重。

可选的,还包括注册模块;注册模块,被配置为在服务注册中心注册启动模块启动的远程过程调用服务对应的服务注册信息;服务注册信息包括:远程过程调用服务的标识,和远程过程调用服务的实例所在的目标服务器的网络互连协议地址及其被远程过程调用服务占用的端口号。

可选的,注册模块还被配置为:接收分组指令;根据分组指令将启动模块启动的所有远程过程调用服务分为预设个数个组,并将分组结果存储在服务注册中心。

可选的,在实例模块在至少一个目标服务器上建立启动模块启动的远程过程调用服务的实例之前,启动模块还被配置为:接收携带有定制参数的停机定制指令;停机定制指令用于指示开启预设钩子程序;预设钩子程序用于使其所在的应用程序在接收到停止指令后,停止接收访问请求,并在处理完已接收到的访问请求后停止应用程序;根据定制参数在远程过程调用服务中加载预设钩子程序。

第三方面,本公开提供一种服务器,该服务器包括处理器和用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现如第一方面提供及其任一种可能的实施方式的远程过程调用服务服务的启动方法。

第四方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器执行如第一方面提供及其任一种可能的实施方式的远程过程调用服务服务的启动方法。

第五方面,本公开实施例还提供一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以在计算机上运行,使得计算机执行如第一方面及其任一种可能的实施方式的远程过程调用服务服务的启动方法。

第六方面,本公开实施例还提供一种远程过程调用服务的启动系统,包括:环境准备模块、服务启动模块、服务注册模块和停机模块。其中,环境准备模块,被配置为执行获取远程过程调用服务对应的环境参数,并运行环境参数,以使远程过程调用服务的环境参数生效;服务启动模块,被配置为执行获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数,并根据远程过程调用服务的标识和启动配置参数启动远程过程调用服务;启动配置参数用于支持远程过程调用服务的运行;服务注册模块,被配置为执行在至少一个目标服务器上建立服务启动模块启动的远程过程调用服务的实例,并在服务注册中心注册服务启动模块启动的远程过程调用服务对应的服务注册信息;停机模块,被配置为执行接收携带有定制参数的停机定制指令,并根据定制参数在服务启动模块启动的远程过程调用服务中加载预设钩子程序。

可选的,环境参数至少包括以下子参数:日志路径、埋点参数、上报参数;埋点参数用于指示埋点代理能力是否开启;上报参数用于指示远程过程调用服务的状态信息是否上报。

可选的,服务注册信息包括远程过程调用服务的标识,和远程过程调用服务的实例所在的目标服务器的网络互连协议地址及其被远程过程调用服务占用的端口号。

可选的,停机定制指令用于指示开启预设钩子程序;预设钩子程序用于使其所在的应用程序在接收到停止指令后,停止接收访问请求,并在处理完已接收到的访问请求后停止应用程序。

可以理解的,本公开提供的技术方案中,首先获取了需要进行启动的远程过程调用服务服务的标识和相应的启动配置参数,而后可以根据远程过程调用服务的标识和相应的启动配置参数启动该标识对应的远程过程调用服务,最后将启动的远程过程调用服务在至少一个目标服务器上实例化,等待后续用户的调用。因为本公开实施例提供的技术方案,在启动远程过程调用服务时,收到多少个远程过程调用服务器的标识则启动多少个远程过程调用服务,从而可以实现一个启动进程同时启动多个远程过程调用服务的效果,相比于现有技术中一个进程仅启动一个远程过程调用服务的情况,本公开实施例提供的技术方案可以明显提高远程过程调用服务的启动效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

图1为本公开实施例提供的一种实施环境示意图;

图2为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图一;

图3为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图二;

图4为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图三;

图5为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图四;

图6为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图五;

图7为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图六;

图8为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图七;

图9为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图八;

图10为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图九;

图11为本公开实施例提供的一种远程过程调用服务的启动装置的结构示意图;

图12为本公开实施例提供的一种远程过程调用服务的启动系统的结构示意图;

图13为本公开实施例提供的一种服务器的结构示意图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

另外,在本公开实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本公开实施例的描述中,“多个”是指两个或多于两个。

首先,对本公开所涉及的技术术语进行介绍:

远程过程调用(remote procedure cal l,RPC)服务:简单的理解是一个节点请求另一个节点提供的服务。

gRPC:常用的远程过程调用之一,是谷歌公布的开源软件,基于超文本传输协议(hypertexttransferprotocol,HTTP)2.0协议,并支持常见的众多编程语言。

实例化:指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。

命令行(命令行提示符):提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。在windows(微软视窗操作系统)环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的磁盘操作系统(Disk Operat ing System,DOS)操作系统。

线程:是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

保活机制:需要长连接的网络通信程序中,在建立通信连接后,如果在一定时间内没有进行数据传输,需要判断对方是否在线或者通信连接是否存在,以防止连接无故中断。

优雅停机:在对应用进程发送停止指令之后,能保证正在执行的业务操作不受影响。应用接收到停止指令之后的步骤应该是,停止接收访问请求,等待已经接收到的请求处理完成,并能成功返回,这时才真正停止应用。

钩子程序:是Windows消息处理机制的一个平台,应用程序可以在上面设置子程序以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理Windows消息或特定事件。

直接模式(direct模式):将消息发给唯一一个节点时使用的模式。

反射能力:指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。

参考图1所示,为本公开实施例提供的技术方案可能涉及的实施环境的示意图。该实施环境,可以包括开发客户端01、服务器02和服务注册中心03,开发客户端01通过有线通讯方式或无线通讯方式与服务器02通信,服务器02通过有线通讯方式或无线通讯方式与服务注册中心03通信。

示例性的,本公开实施例中的开发客户端01可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobi le personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital ass istant,PDA)、增强现实(augmented real ity,AR)\虚拟现实(virtual real i ty,VR)设备等可以进行项目开发的设备,本公开实施例对该开发客户端的具体形态不作特殊限制。

示例性的,本公开中的服务器02可以是一台服务器,也可以是多台服务器组成的服务器集群,或者是一个云计算服务中心,本公开对此不做限定。服务器02主要用于接收开发客户端01发送的一些定制化命令(包含一些用于启动远程过程调用服务的相关参数),以启动相应的远程过程调用服务,同时将启动后的远程过程调用服务器实例化并进行注册,以供需要的用户(用户终端)调用。

示例性的,本公开中的服务注册中心可以是一个云计算服务中心,也可以是由多台服务器组成的服务器集群,本公开中的服务注册中心主要用于存储服务器02发送的远程过程调用服务的相关信息,完成远程过程调用服务的注册,同时可以供需要的用户查看。

目前的远程过程调用框架,每一次对远程过程调用服务进行启动开启一个进程时,仅能启动一个远程过程调用服务器,在需要启动多个远程过程调用服务时,这种方式造成远程过程调用服务的启动效率较低,不能满足日益增长的远程过程调用服务需求。

针对上述问题,本公开提供过一种远程过程调用服务的启动方法,能够提高远程过程调用服务的启动效率。该方法的具体执行注意可以为上述的服务器或开发客户端,具体根据实际需求而定。当执行主体为开发客户端时,开发客户端本身应当具备有服务器的性能或者本身为服务器。本公开实施例后续的描述中,“开发客户端”指开发人员使用的终端,“服务器”则根据情况的不同,可以是开发人员使用的终端,也可以是和开发人员通过自身使用的终端进行通信交互的服务器。

参照图2所示,为本公开实施例提供的一种远程过程调用服务的启动方法的流程示意图。该方法由远程过程调用服务的启动装置执行,该远程过程调用服务的启动装置可以为图1中所示的服务器或者其中一部分。该方法可以包括201-203。

201、获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数。

其中,启动配置参数用于支持远程过程调用服务的运行;示例性的,启动配置参数可以包括以下子参数中任一项或多项:线程数、队列大小、端口号、预热参数、服务注册信息、加密参数、反射参数、模式参数和保活机制的保活时间;加密参数用于指示是否开启数据加密传输模式;反射参数用于指示是否远程过程调用反射能力;模式参数用于指示是否开启直接direct模式。服务注册信息可以包括远程过程调用服务的名称。队列用于限制远程过程调用服务对应的远程过程调用服务请求的数量并对其进行排队处理。

需要说明的是,因为用户通过自身的用户终端与远程过程调用服务所在的服务器建立通信连接的过程是较为耗时的,而建立连接后肯定会存在某一段时间内不发送远程过程调用服务请求(用于请求使用远程过程调用服务),这段时间后则又可能会发送远程过程调用服务请求,所以为了节省多次重复建立通信连接的耗时,同时保证连接是有效的,在本公开中,可以默认开启保活机制,需要每隔一段时间去检测连接的有效性;在实际中,如果不需要保活机制带来的效益,也可以由用户关闭保活机制。本公开对此不做具体限制。

202、根据远程过程调用服务的标识和启动配置参数启动远程过程调用服务。

其中,远程过程调用服务的标识是与远程过程调用服务唯一对应的标识。

203、在至少一个目标服务器上建立远程过程调用服务的实例。

这里的至少一个目标服务器可以包括执行201-203步骤的服务器,也可以不包括该服务器。在至少一个目标服务器上将将远程过程调用服务实例化的目的在于,防止只在一个服务器上将远程过程调用服务实例化时,一旦该服务器出现故障,使得远程过程调用服务无法正常使用的情况。

基于上述方案可以看出,因为本公开实施例提供的技术方案,在启动远程过程调用服务时,收到多少个远程过程调用服务器的标识则启动多少个远程过程调用服务,从而可以实现一个启动进程同时启动多个远程过程调用服务的效果,相比于现有技术中一个进程仅启动一个远程过程调用服务的情况,本公开实施例提供的技术方案可以明显提高远程过程调用服务的启动效率。

可选的,结合图2,参照图3所示,因为远程过程调用服务启动时,还需要将其所在的服务器的相关环境进行初始化配置,保证远程过程调用服务的顺利启动,所以本公开实施例在201步骤之前还包括S1和S2:

S1、获取远程过程调用服务对应的环境参数。

示例性的,环境参数至少包括以下子参数:日志路径、埋点参数、上报参数;埋点参数用于指示埋点代理能力是否开启;上报参数用于指示远程过程调用服务的状态信息是否上报;运行远程过程调用服务的环境参数,以使远程过程调用服务的环境参数生效。

其中,埋点代理能力开启后可以在远程过程调用服务中进行埋点,以便后续得到埋电数据进行埋点分析,可以起到对远程过程调用服务相关状态和运行情况的分析。

S2、运行远程过程调用服务的环境参数,以使远程过程调用服务的环境参数生效。

在一种可能的实现方式中,本公开在获取远程过程调用服务对应的环境参数时,可以接收用户的定制化要求,以满足用户的定制需求,所以结合图3,参照图4所示,S1可以包括S11和S12:

S11、接收环境配置指令。

其中,环境配置指令携带有远程过程调用服务对应的环境参数中子参数的任一项或多项。

S12、将远程过程调用服务对应的环境参数中未存在于环境配置指令中的子参数,设定为默认值。

另外,在本公开实施例中,远程过程调用服务对应的环境参数可以全由用户指令,即环境配置指令中携带远程过程调用服务对应的环境参数中所有的子参数;远程过程调用服务对应的环境参数也可以全为默认值,即环境配置指令中不携带远程过程调用服务对应的环境参数中任一子参数,仅作为指示启动远程过程调用服务的服务器执行S2步骤的指令存在。对此,本公开不做具体限制。

一种可能的实现方式中,服务器获取远程过程调用服务的启动配置参数可以是用户通过命令行(命令行提示符)的方式发送给启动远程过程调用服务的服务器,所以结合图2,参照图5所示,201步骤包括2011A-2013A:

2011A、获取至少一个远程过程调用服务的标识。

2012A、接收命令行提示符。

命令行提示符中包括启动配置参数中子参数的任一项或多项。

2013A、将启动配置参数中未存在于命令行提示符中的子参数,设定为默认值。

另外,在本公开实施例中,远程过程调用服务的启动配置参数可以全由用户指令,即命令行提示符中包括远程过程调用服务的启动配置参数中所有的子参数;远程过程调用服务的启动配置参数也可以全为默认值,即不存在2012A步骤。对此,本公开不做具体限制。

另一种可能的实现方式中,服务器获取远程过程调用服务的启动配置参数可以是用户通过的编程的方式发送给启动远程过程调用服务的服务器,所以结合图2,参照图6所示,201步骤包括2011B-2013B:

2011B、获取至少一个远程过程调用服务的标识。

2012B、通过预设应用程序接口(appl ication programming interface,API)接收编程指令。

编程指令中包括启动配置参数中子参数的任一项或多项。

2013B、将启动配置参数中未存在于编程指令中的子参数,设定为默认值。

另外,在本公开实施例中,远程过程调用服务的启动配置参数可以全由用户指令,即编程指令中包括远程过程调用服务的启动配置参数中所有的子参数;远程过程调用服务的启动配置参数也可以全为默认值,即不存在2012B步骤。对此,本公开不做具体限制。

需要说明的是,图5和图6中两种启动配置参数的获取方式的区别在于,图5中所示的命令行的方式,配置参数的方式较为固定,参数最终的赋值也存在一定限制,但是可以更快捷的获取到启动配置参数。图6中所示的编程的方式需要用户编写代码,整体流程较慢,但是可以更灵活自由的对远程过程调用服务的启动配置参数进行设置。

一种可实现的方式中,结合图2,参照图7所示,203步骤可以包括2031-2033:

2031、接收实例化指令。

其中,实例化指令用于指示在至少一个目标服务器上建立远程过程调用服务的实例;实例化指令至少携带有:每一个目标服务器的目标权重和每一个目标服务器对应的预设时间长度;权重用于表明目标服务器承载远程过程调用服务请求的能力大小。

2032、在目标服务器上建立远程过程调用服务的实例,并将目标服务器的权重设定为初始权重。

2033、在目标服务器对应的预设时间长度内使用预设权重爬坡机制将初始权重提升为目标服务器对应的目标权重。

一种可实现的方式中,以目标服务器对应的预设时间长度为20分钟,目标服务器对应的目标权重为100,初始权重为10为例,预设权重爬坡机制可以是每隔五分钟将目标服务器的权重提高其目标权重的22.5%;预设权重爬坡机制还可以是先隔五分钟将目标服务器的权重提高其目标权重的30%,然后隔10分钟将目标服务器的权重提高其目标权重的40%,最后再隔五分钟将目标服务器的权重提高其目标权重的20%。具体将预设时间长度分为几段,以及每一段时间提升多少权重值,均由实际需求而定,只要保证在预设时间长度后秒服务器的权重值达到目标权重即可。

基于上述方案,在远程过程调用服务启动完成后,将其在多个目标服务器中进行实例化,用户可以选择任一个目标服务器进行访问,保证用户使用远程过程调用服务的可靠性。进一步的,因为不同目标服务器计算资源的不同或不同服务器所在地区的网络状况的不同,给不同的目标服务器设定不同的目标权重,可以合理的将所有的远程过程调用服务请求分配到不同的目标服务器上,提高目标服务器的资源利用率,而且因为将远程过程调用服务请求分散了,每个目标服务器承载的远程过程调用服务请求不会很多,也可以提高远程过程调用服务请求得到响应的概率,使得大多数用户都能够使用到远程过程调用服务。

可选的,为了方便管理,所有用户在请求远程过程调用服务时最好都通过同一设备或平台发送请求,所以结合图2,参照图8所示,本公开提供的实施例中,203步骤后还包括204:

204、在服务注册中心注册远程过程调用服务对应的服务注册信息。

其中,服务注册信息包括远程过程调用服务的标识,和远程过程调用服务的实例所在的目标服务器的网络互连协议(internet protocol,IP)地址及其被远程过程调用服务占用的端口号。

基于上述方案,用户在需要使用某个远程过程调用服务时,便可以通过自身的用户终端将远程过程调用服务请求发给服务注册中心,服务注册中心则可以根据用户需求的远程过程调用服务的实例所在的目标服务器的情况和用户本身所处区域的情况,结合每个目标服务器的网络互连协议地址和每个目标服务器被远程过程调用服务占用的端口号,将用户发送的远程过程调用服务请求转发给合适的目标服务器。因为远程过程调用服务请求都需要经过服务注册中心,所以管理人员仅需要依靠服务注册中心的数据,便可以知晓不同目标服务器和不同远程过程调用服务的具体情况,以便实施相应的管理措施。

为了能够带给用户更自由的组合体验,可选的,结合图8,参照图9所示,本公开提供的实施例中,204步骤之后还包括205和206:

205、接收分组指令。

206、根据分组指令将所有远程过程调用服务分为预设个数个组,并将分组结果存储在服务注册中心。

基于上述方案,将不同的远程过程调用服务分为不同的组别后,后续便可以根据用户权限等参数,控制不同用户访问不同远程过程调用服务的权限,可以使得远程过程调用服务的提供方更加合理自由的分配决定可以使用远程过程调用服务的用户,也可以使得远程过程调用服务的使用方,可以更加自由的确定自身需要使用的远程过程调用服务。

为了保证用户使用远程过程调用服务的体验感更好,可选的,结合图2,参照图10所示,本公开提供的实施例中,203步骤之前还包括X1和X2:

X1、接收携带有定制参数的停机定制指令。

其中,停机定制指令用于指示开启预设钩子程序;预设钩子程序用于使其所在的应用程序在接收到停止指令后,停止接收访问请求,并在处理完已接收到的访问请求后停止应用程序。

X2、根据定制参数在远程过程调用服务中加载预设钩子程序。

基于上述方案,在远程过程调用服务中加载优雅停机钩子程序后,如果某个远程过程调用服务需要更新版本或者停止运行,则可以使得正在使用远程过程调用服务的用户在使用时告知其远程过程调用服务需要更新版本或停止运行,但会保证其当前的使用结束。这样一来,便使得远程过程调用服务的停机更为优雅,提高了用户体验度。

本公开实施例提供的技术方案中,首先获取了需要进行启动的远程过程调用服务的标识和相应的启动配置参数,而后可以根据远程过程调用服务的标识和相应的启动配置参数启动该标识对应的远程过程调用服务,最后将启动的远程过程调用服务在至少一个目标服务器上实例化,等待后续用户的调用。因为本公开实施例提供的技术方案,在启动远程过程调用服务时,收到多少个远程过程调用服务器的标识则启动多少个远程过程调用服务,从而可以实现一个启动进程同时启动多个远程过程调用服务的效果,相比于现有技术中一个进程仅启动一个远程过程调用服务的情况,本公开实施例提供的技术方案可以明显提高远程过程调用服务的启动效率。

上述明主要从服务器的角度对本公开实施例提供的方案进行了介绍。可以理解的是,服务器可以分别通过其中配置的远程过程调用服务的启动装置实现上述功能。为了实现上述功能,远程过程调用服务的启动装置包含了执行各个功能相应的硬件结构和/或软件模块,这些执行各个功能相应的硬件结构和/或软件模块可以构成一个终端。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。

本公开实施例可以根据上述方法示例对服务器进行功能模块的划分,例如,服务器可以包括远程过程调用服务的启动装置,远程过程调用服务的启动装置可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图11示出了应用在图1中所示服务器02的远程过程调用服务的启动装置03的一种可能的结构示意图,该远程过程调用服务的启动装置03包括:获取模块31、启动模块32和实例模块33。

获取模块31,被配置为获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数;启动配置参数用于支持远程过程调用服务的运行;启动模块32,被配置为根据获取模块31获取的远程过程调用服务的标识和启动配置参数启动远程过程调用服务;实例模块33,被配置为在至少一个目标服务器上上建立启动模块32启动的远程过程调用服务的实例。

可选的,该启动装置03还包括环境模块34;获取模块31还被配置为在获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数之前,获取远程过程调用服务对应的环境参数;环境参数至少包括以下子参数:日志路径、埋点参数、上报参数;埋点参数用于指示埋点代理能力是否开启;上报参数用于指示远程过程调用服务的状态信息是否上报;环境模块34,被配置为运行获取模块31获取的远程过程调用服务的环境参数,以使远程过程调用服务的环境参数生效。

可选的,获取模块31具体被配置为:接收环境配置指令;环境配置指令携带有远程过程调用服务对应的环境参数中子参数的任一项或多项;将远程过程调用服务对应的环境参数中未存在于环境配置指令中的子参数,设定为默认值。

可选的,获取模块31具体被配置为:接收命令行提示符;命令行提示符中包括启动配置参数中子参数的任一项或多项;将启动配置参数中未存在于命令行提示符中的子参数,设定为默认值。

可选的,获取模块31具体被配置为:通过预设应用程序接口API接收编程指令;编程指令中包括启动配置参数中子参数的任一项或多项;将启动配置参数中未存在于编程指令中的子参数,设定为默认值。

可选的,实例模块33具体被配置为:接收实例化指令;实例化指令用于指示在至少一个目标服务器上建立启动模块32启动的远程过程调用服务的实例;实例化指令至少携带有:每一个目标服务器的目标权重和每一个目标服务器对应的预设时间长度;权重用于表明目标服务器承载远程过程调用服务请求的能力大小;在目标服务器上建立远程过程调用服务的实例,并将目标服务器的权重设定为初始权重;在目标服务器对应的预设时间长度内使用预设权重爬坡机制将初始权重提升为目标服务器对应的目标权重。

可选的,该启动装置03还包括注册模块35;注册模块35,被配置为在服务注册中心03注册启动模块32启动的远程过程调用服务对应的服务注册信息;服务注册信息包括远程过程调用服务的标识,和远程过程调用服务被实例模块33的实例所在的目标服务器的IP地址及其被远程过程调用服务占用的端口号。

进一步可选的,注册模块34还被配置为:接收分组指令;根据分组指令将启动模块32启动的所有远程过程调用服务分为预设个数个组,并将分组结果存储在服务注册中心03。

可选的,在实例模块33在至少一个目标服务器上建立启动模块32启动的远程过程调用服务的实例之前,启动模块32还被配置为:接收携带有定制参数的停机定制指令;停机定制指令用于指示开启预设钩子程序;预设钩子程序用于使其所在的应用程序在接收到停止指令后,停止接收访问请求,并在处理完已接收到的访问请求后停止应用程序;根据定制参数在远程过程调用服务中加载预设钩子程序。

关于上述实施例中的远程过程调用服务的启动装置,其中各个模块执行操作的具体方式已经在前述中的远程过程调用服务的启动方法的实施例中进行了详细描述,此处将不做详细阐述说明。其相关有益效果也可参照前述远程过程调用服务的启动方法的相关有益效果,此处不再赘述。

参照图12所示,本公开实施例还提供一种远程过程调用服务的启动系统04,该系统包括:环境准备模块41、服务启动模块42、服务注册模块43和停机模块44。其中,环境准备模块41,被配置为执行获取远程过程调用服务对应的环境参数,并运行环境参数,以使远程过程调用服务的环境参数生效;服务启动模块42,被配置为执行获取至少一个远程过程调用服务的标识以及远程过程调用服务的启动配置参数,并根据远程过程调用服务的标识和启动配置参数启动远程过程调用服务;启动配置参数用于支持远程过程调用服务的运行;服务注册模块43,被配置为执行在至少一个目标服务器上建立服务启动模块42启动的远程过程调用服务的实例,并在服务注册中心03注册服务启动模块42启动的远程过程调用服务对应的服务注册信息;停机模块44,被配置为执行接收携带有定制参数的停机定制指令,并根据定制参数在服务启动模块42启动的远程过程调用服务中加载预设钩子程序。

本公开实施例中,远程过程调用服务的启动系统可以是一个服务器,此时上述的各个模块为该服务器中的具体装置;该系统还可以是多个服务器,此时上述各个模块可以为单独的服务器。

可选的,环境参数至少包括以下子参数:日志路径、埋点参数、上报参数;埋点参数用于指示埋点代理能力是否开启;上报参数用于指示远程过程调用服务的状态信息是否上报。

可选的,服务注册信息包括远程过程调用服务的标识,和远程过程调用服务的实例所在的目标服务器的网络互连协议地址及其被远程过程调用服务占用的端口号。

可选的,停机定制指令用于指示开启预设钩子程序;预设钩子程序用于使其所在的应用程序在接收到停止指令后,停止接收访问请求,并在处理完已接收到的访问请求后停止应用程序。

关于上述实施例中的远程过程调用服务的启动系统,其中各个模块执行操作的具体方式已经在前述中的远程过程调用服务的启动方法的实施例中进行了详细描述,此处将不做详细阐述说明。其相关有益效果也可参照前述远程过程调用服务的启动方法的相关有益效果,此处不再赘述。

在采用集成的单元的情况下,图13是根据一示例性实施例示出的如图1所示的服务器02的一种可能的结构示意图,该服务器02可以是上述的远程过程调用服务的启动装置03。如图13所示,该服务器02包括处理器71和存储器72。其中,存储器72用于存储处理器71可执行的指令,处理器71则可以实现上述实施例中远程过程调用服务的启动装置03中各个模块的功能。

其中,在具体的实现中,作为一种实施例,处理器71(71-1和71-2)可以包括一个或多个CPU,例如图13中所示的CPU0和CPU1。且作为一种实施例,空调的控制装置可以包括多个处理器71,例如图13中所示的处理器71-1和处理器71-2。这些处理器71中的每一个CPU可以是一个单核处理器(Single-CPU),也可以是一个多核处理器(Multi-CPU)。这里的处理器71可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。处理器501可以包括应用处理器(appl ication processor,AP),调制解调处理器,图形处理器(graphics process ing unit,GPU),图像信号处理器(image s ignal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digi tal s ignal processor,DSP),基带处理器,和/或神经网络处理器(neural-network process ing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

存储器72可以是只读存储器72(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘可读存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器72可以是独立存在,通过总线73与处理器71相连接。存储器72也可以和处理器71集成在一起。

总线73,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线73可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

另外,为了方便服务器02与其他设备(例如开发客户端)进行信息交互,该服务器02包括通信接口74。通信接口74,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如控制系统、无线接入网(radio access network,RAN),无线局域网(wirelesslocal area networks,WLAN)等。通信接口74可以包括接收单元实现接收功能,以及发送单元实现发送功能。

本领域技术人员可以理解,图13中示出的结构并不构成对服务器的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有指令,当该可读存储介质上的指令由服务器的处理器执行时,使得服务器能够执行前述实施例中提供的应用在服务器上的远程过程调用服务的启动方法。

本公开实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述实施例提供的远程过程调用服务的启动方法。

通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号