CN108134766A - 一种服务发布的方法、装置、***、服务器及客户端 - Google Patents
一种服务发布的方法、装置、***、服务器及客户端 Download PDFInfo
- Publication number
- CN108134766A CN108134766A CN201611099694.4A CN201611099694A CN108134766A CN 108134766 A CN108134766 A CN 108134766A CN 201611099694 A CN201611099694 A CN 201611099694A CN 108134766 A CN108134766 A CN 108134766A
- Authority
- CN
- China
- Prior art keywords
- service
- rpc
- load value
- registration
- service provider
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供了一种服务发布的方法、装置、***、服务器及客户端,当所述方法应用于注册中心时,所述方法包括在应用程序启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务;将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务。本申请实施例可以实现动态分组服务发布,提高业务的正确性和稳定性。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种服务发布的方法、一种服务发布的装置、一种服务发布的***、一种服务发布的服务器、一种服务发布的客户端,以及,一种装置、一个或多个计算机可读介质。
背景技术
当一个网页web应用刚刚启动暴露服务时,会有外部请求被接收进而执行业务逻辑。这个时候会重复执行很多代码,这些代码会被JVM(Java Virtual Machine,Java虚拟机)捕获并交由JIT(Just-In-Time Compiler,即时编译器)进行编译。
在现有技术中,在应用启动完毕后,直接将所有的服务都进行注册,这样做的问题是注册后,会有流量进入这台服务提供方,并且是所有接口的流量。这些服务开始大量执行,从而引发JIT进行即时编译。虽然在对外提供服务的情况下,应用机器的机器负载本身维持在一个正常的水平,但这个时候JIT的编译(compiler)线程会进行大量的编译操作,非常消耗CPU,抢占***资源,导致***load飙升,正常的请求执行时间变长,甚至失败,严重影响业务可用性。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提出一种服务发布的机制,用以降低***负载,提高业务的正确性和稳定性。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种服务发布的方法、一种服务发布的装置、一种服务发布的***、一种服务发布的服务器、一种服务发布的客户端,以及,一种装置、一个或多个计算机可读介质。
为了解决上述问题,本申请实施例公开了一种服务发布***,所述***包括注册中心、服务提供方以及服务消费方;
所述服务提供方,确定待发布的多个远程过程调用RPC服务,并针对所述多个RPC服务生成注册请求;
所述注册中心,基于所述服务器发送的注册请求,生成服务列表,并将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务;更新所述服务列表;
所述服务消费方,接收所述注册中心发送的所述服务列表以及更新的服务列表,并将所述更新的服务列表替换所述服务列表。
本申请实施例还公开了一种服务发布的方法,应用于注册中心,所述方法包括:
在应用程序启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务;
将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务。
本申请实施例还公开了一种服务发布的方法,应用于服务提供方,所述方法包括:
在应用启动的过程中,确定待发布的多个远程过程调用RPC服务;
针对所述多个RPC服务,向注册中心发送注册请求,所述注册中心用于基于所述注册请求,将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则向所述注册中心发送反注册请求,所述注册中心用于基于所述反注册请求,将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则向所述注册中心发送下一组RPC服务的发布请求,所述注册中心用于基于所述发布请求,发布下一组RPC服务。
本申请实施例还公开了一种服务更新的方法,应用于服务消费方,包括:
接收注册中心发送的服务列表,所述服务列表包括一个或多个服务提供方提供的一个或多个服务的标识;
接收注册中心发送的更新的服务列表,所述更新的服务列表为所述注册中心在应用启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务以后,将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值,并在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册后得到的列表;
将所述更新的服务列表替换所述服务列表。
本申请实施例还公开了一种服务发布的装置,所述装置包括:
待发布服务获取模块,用于在应用程序启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务;
服务分组模块,用于将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
***负载获取模块,用于每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;
反注册模块,用于在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册;
逐层发布模块,用于在所述***第一负载值小于或等于预设负载阈值时,发布下一组RPC服务。
本申请实施例还公开了一种服务发布的装置,所述装置包括:
待发布服务确定模块,用于在应用启动的过程中,确定待发布的多个远程过程调用RPC服务;
注册请求发送模块,用于针对所述多个RPC服务,向注册中心发送注册请求,所述注册中心用于基于所述注册请求,将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
***负载确定模块,用于每发布一组RPC服务时,获取实时的***第一负载值;
反注册请求发送模块,用于在所述***第一负载值大于预设负载阈值时,向所述注册中心发送反注册请求,所述注册中心用于基于所述反注册请求,将所述服务提供方当前发布的RPC服务进行反注册;
发布请求发送模块,用于在所述***第一负载值小于或等于预设负载阈值时,向所述注册中心发送下一组RPC服务的发布请求,所述注册中心用于基于所述发布请求,发布下一组RPC服务。
本申请实施例还公开了一种服务更新的装置,包括:
服务列表接收模块,用于接收注册中心发送的服务列表,所述服务列表包括一个或多个服务提供方提供的一个或多个服务的标识;
更新列表接收模块,用于接收注册中心发送的更新的服务列表,所述更新的服务列表为所述注册中心在应用启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务以后,将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值,并在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册后得到的列表;
列表更新模块,用于将所述更新的服务列表替换所述服务列表。
本申请实施例还公开了一种服务发布的***,所述***包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
在应用程序启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务;
将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务。
本申请实施例还公开了一种服务发布的服务器,所述服务器包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
在应用启动的过程中,确定待发布的多个远程过程调用RPC服务;
针对所述多个RPC服务,向注册中心发送注册请求,所述注册中心用于基于所述注册请求,将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则向所述注册中心发送反注册请求,所述注册中心用于基于所述反注册请求,将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则向所述注册中心发送下一组RPC服务的发布请求,所述注册中心用于基于所述发布请求,发布下一组RPC服务。
本申请实施例还公开了一种服务发布的客户端,所述客户端包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
接收注册中心发送的服务列表,所述服务列表包括一个或多个服务提供方提供的一个或多个服务的标识;
接收注册中心发送的更新的服务列表,所述更新的服务列表为所述注册中心在应用启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务以后,将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值,并在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册后得到的列表;
将所述更新的服务列表替换所述服务列表。
本申请实施例还公开了一种装置,包括:
一个或多个处理器;和
其上存储的一个或多个计算机可读介质中的指令,由所述一个或多个处理器执行时,导致所述装置执行上述的方法。
本申请实施例还公开了一个或多个计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得终端设备执行上述的方法。
与背景技术相比,本申请实施例包括以下优点:
本申请实施例基于***负载,实现动态分组服务发布,将服务逐个暴露出去,每暴露一组服务时计算操作***的load,来判断是否需要将已注册的服务反注册。如果***的load超过预设负载阈值(意味着***繁忙),则将已经注册的服务进行反注册。每个服务被注册后都会引发这个服务相关的.class文件的JIT编译,这样就保证对每个服务JIT后,这个服务不再有流量进入,一方面保证请求回路由到未重启的机器上,一方面所有的***负载用于JIT和执行别的服务,从而提高业务的正确性和稳定性。
附图说明
图1是本申请的一种服务发布的方法实施例1的步骤流程图;
图2是本申请的服务发布示意图;
图3是本申请的一种服务发布的方法实施例2的步骤流程图;
图4是本申请的一种服务发布的方法实施例3的步骤流程图
图5是本申请的一种服务发布的装置实施例1的结构框图;
图6是本申请的一种服务发布的装置实施例2的结构框图;
图7是本申请的一种服务发布的装置实施例3的结构框图;
图8是本申请的一种服务发布***实施例的结构框图;
图9是本申请的一种服务发布***实施例的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请的构思易于进行各种修改和替代形式,其具体实施例已经通过附图的方式示出,并将在这里详细描述。然而,应该理解,上述内容并不是用来将本申请的构思限制为所公开的具体形式,相反地,本申请的说明书和附加权利要求书意欲覆盖所有的修改、等同和替代的形式。
本说明书中的“一个实施例”,“实施例”,“一个具体实施例”等,表示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以包括或可以不必然包括该特定特征、结构或特性。此外,这样的短语不一定指的是同一实施例。另外,在联系一个实施例描述特定特征、结构或特性的情况下,无论是否明确描述,可以认为本领域技术人员所知的范围内,这样的特征、结构或特性也与其他实施例有关。另外,应该理解的是,“在A,B和C的至少一个”这种形式所包括的列表中的条目中,可以包括如下可能的项目:(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。同样,“A,B或C中的至少一个”这种形式列出的项目可能意味着(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。
在一些情况下,所公开的实施例可以被实施为硬件、固件、软件或其任意组合。所公开的实施例也可以实现为携带或存储在一个或多个暂时的或者非暂时的机器可读(例如计算机可读)存储介质中的指令,该指令可以被一个或多个处理器执行。机器可读存储介质可以实施为用于以能够被机器读取的形式存储或者传输信息的存储装置、机构或其他物理结构(例如易失性或非易失性存储器、介质盘、或其他媒体其它物理结构装置)。
在附图中,一些结构或方法特征可以以特定的安排和/或排序显示。然而,优选地,这样的具体安排和/或排序并不是必要的。相反,在一些实施方案中,这样的特征可以以不同的方式和/或顺序排列,而不是如附图中所示。此外,特定的附图中的结构或方法特征中所包含的内容,不意味着暗示这种特征是在所有实施例是必须的,并且在一些实施方案中,可能不包括这些特征,或者可能将这些特征与其它特征相结合。
参照图1,示出了本申请的一种服务发布的方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101,在应用程序启动的过程中,获取当前服务提供方待发布的多个RPC服务;
具体的,RPC服务是服务提供方(provider)提供的基于RPC(Remote ProcedureCall Protocol,远程过程调用协议)的服务。
RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC采用客户机(即服务消费方)/服务器(即服务提供方)模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
本申请实施例中的服务发布可以基于RPC框架进行,RPC框架提供给用户透明使用RPC能力的编程框架,用户使用RPC框架后,对于RPC行为彻底隐藏,如同本地调用。
在具体实现中,RPC框架中可以包括注册中心,注册中心维护了所有服务提供方所暴露的服务的信息,例如,服务的信息可以包括IP地址、端口号等。
注册中心的职责是很明确的,可以包括如下功能:
1)服务提供方向其发送它提供的服务的一些基本信息;
2)服务消费方来订阅服务;
3)服务提供方实例下线的时候,实时通知服务消费方某个服务下线。
除此以外,注册中心还包括一些服务治理的功能,比如:
1)服务审核,这是服务治理最简单的操作,因为某个服务提供方上线之后,都是需要审核的,如果不审核,可能会造成很多不必要的麻烦,比如,不小心把开发环境的服务向线上服务注册,如果不审核而直接通过的话,就会造成线上接口调用线下服务的尴尬局面;
2)负载策略的记录,比如默认是随机加权策略,如果管理者希望改成加权轮询的策略,需要通知服务消费方,访问策略的改变;
3)手动改变某个服务的访问权重,比如某个服务默认负重是50,(最大100)的时候,但是此时这个服务实例所在的机器压力不大的时候,而其他该服务实例压力很大的时候,可以适当的增加该服务的访问权重,但是又不想让该服务下线,修改它的权重,所以可以在注册中心修改它的负重,然后通知服务消费方,这样就可以动态的修改负重了;
4)一些持久化的操作,因为注册中心是无状态的,假如某个注册中心实例重启之后,以前的一些审核信息,修改的访问策略信息就会消失,这样就会需要用户重新一一审核,这是很麻烦的,所以需要将这些信息落地,持久化到硬盘,然后每次重启注册中心实例的时候,去读取这些信息。
RPC框架可以为分布式服务框架,可以用于分布式部署的应用程序通信。即在步骤101中,应用程序为分布式部署的应用程序,该应用程序可以对应多台机器,包括多个服务提供方以及多个服务消费方。
在应用程序启动的过程中,很多资源处于一个构建的过程(最具代表性的是本地缓存(local cache)),这个时候应用程序的性能相对来说是比较差的。因此,在本申请实施例中,在应用程序的启动过程中,可以首先执行步骤101获取当前服务提供方待发布的多个RPC服务,然后执行步骤102,将待发布的RPC服务进行分组发布。
在具体实现中,当服务提供方需要发布服务时,服务提供方可以向注册中心发送注册请求,作为一种示例,该注册请求可以表示为PUBLISH_SERVICE,则注册中心可以从服务提供方推送的PUBLISH_SERVICE中获知服务提供方待发布RPC服务。
在实际中,一个服务提供方可以提供一个或多个服务,例如,一台机器可以提供存储、查询等多种服务。
步骤102,将所述待发布的RPC服务进行分组,得到N组RPC服务;
在本申请实施例中,当注册中心获得每台服务提供方待发布的多个RPC服务以后,可以将该多个RPC服务划分成N组,其中,N为正整数。
在本申请实施例的一种优选实施例中,步骤102进一步可以包括如下子步骤:
子步骤S11,读取配置文件中预置的服务分组策略;
子步骤S12,按照所述服务分组策略将所述待发布的RPC服务进行分组,得到对应的N组服务。
在具体实现中,用户可以通过JVM参数配置,在配置文件中设置一个或多个服务分组策略,例如,该服务分组策略可以包括,固定配置每个分组的服务(即RPC服务)的数量;根据待发布的服务的总数量,按照预设的M组进行平分,等等。
比如,假设根据待发布的服务的总数量为M,则可以将取1/4M作为一组。
注册中心可以读取配置文件中设置的服务分组策略,如果服务分组策略有一个,则按照该服务分组策略将待发布的RPC服务进行分组,得到对应的N组服务。或者,注册中心还可以将该服务分组策略展现给用户,当用户选定该服务分组策略以后,按照该服务分组策略将待发布的RPC服务进行分组,得到对应的N组服务。
如果服务分组策略有多个,则可以将该多个服务分组策略展现给用户,当用户选定某个服务分组策略以后,按照该选定的服务分组策略将待发布的RPC服务进行分组,得到对应的N组服务,并将分组情况告知服务提供方。
需要说明的是,该N组服务可以为顺次排序的服务,顺次排序可以包括:组内的服务顺次排序,组间顺次排序,以保证服务发布的次序。例如,某一个服务端共发布了6个服务,分别为A1、A2、A3、A4、A5、A6,其中,每2个服务划分为一组,共三组,分别为C1(A1、A2)、C2(A3、A4)、C3(A5、A6),其中,则组间的发布顺序可以为C1-C2-C3;组内的发布顺序可以为A1-A2,A3-A4,A5-A6。
步骤103,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;
在本申请实施例中,当得到N组服务以后,可以逐组进行服务暴露,以达到动态分组发布的目的。
需要说明的是,每暴露一组服务时,该组中的多个服务也是逐个进行暴露的。
在本申请实施例的一种优选实施例中,步骤103进一步可以为:每发布一组RPC服务时,通过读取指定文件来获取当前服务提供方实时的***第一负载值。
具体的,***负载被定义为在特定时间间隔内运行队列中的平均进程树,一般可以用Load Average来体现***负载,Load Average与***的繁忙程度成正相关,Load越高表示***越繁忙。
***第一负载值可以为服务提供方的***中的CPU利用率。在实现中,服务提供方可以用指定文件来计算CPU利用率。
作为一种示例,该指定文件可以包括/proc/stat文件,这个文件包含了所有CPU活动的信息,该文件中的所有值都是从***启动开始累计到当前时刻。
当服务提供方获得***第一负载值以后,可以将该***第一负载值发送至注册中心。
当然,注册中心还可以通过其他方式计算***第一负载值,例如,可以通过github上的开源库oshi来计算当前服务提供方的***负载值。本申请实施例对此不作限定。
步骤104,若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;
在本申请实施例中,当注册中心获得的当前提供服务的某一服务提供方的***第一负载值以后,判断该***第一负载值是否大于预设负载阈值,如果是,则说明该服务提供方的CPU被大量占用,***繁忙。
在实际中,每台服务端的机器都有能力向注册中心注册或反注册自身,以向注册中心注册或反注册自己提供的服务,并暴露已注册的服务。每个服务在注册中心被注册后都会引发该服务相关的.class文件的JIT编译,而JIT编译器所占用的compiler线程会大量使用CPU,因此,在本申请实施例中,当服务提供方的***第一负载值大于预设负载阈值时,对于已经注册过的服务,接受了流量预热后可以进行反注册。
在本申请实施例的一种优选实施例中,步骤104可以包括如下子步骤:
子步骤S21,若所述***第一负载值大于预设负载阈值,则接收所述服务提供方对当前发布的RPC服务进行反注册的反注册请求;
子步骤S22,基于所述反注册请求对对应的RPC服务进行反注册。
在本申请实施例中,当服务提供方的机器判定当前***的***第一负载值大于预设负载阈值时,可以向注册中心提出反注册请求以反注册当前发布的服务,该反注册请求中可以包括要求反注册的服务的标识。
作为一种示例,该反注册请求可以描述为PUBLISH_CANCEL_SERVICE。
当注册中心接收到服务提供方推送的PUBLISH_CANCEL_SERVICE以后,对对应的服务进行反注册。
在实际中,注册中心可以维护一个针对已注册的服务的服务列表,当服务提供方对一个或多个服务向注册中心进行注册以后,注册中心可以将注册的一个或多个服务添加到服务列表中,并将该服务列表发送至服务消费方(consumer),每次RPC调用,服务消费方会从服务列表里选择一台服务提供方的机器进行调用。
相应的,当服务提供方进行服务的反注册时,注册中心可以对服务列表进行更新。
在一种实施方式中,上述更新可以包括在服务列表中删除该进行反注册对应的服务。
当然,本申请实施例还可以有其他更新方式,例如,将进行反注册的服务添加预设的反注册标识,本申请实施例对此不作限制。
当服务中心将服务列表进行更新以后,将更新后的服务列表发送至服务消费方,以进行服务消费方侧的服务列表的更新。
在服务消费方收到的更新的服务列表中,被反注册的服务不存在或不可用,因此,对每个服务JIT后,反注册的服务并不向外暴露,这样就不会有请求进来,即不再有流量进入,一方面保证请求回路由到未重启的机器上,一方面所有的***负载用于JIT和执行别的服务,从而提高业务的正确性和稳定性。
需要说明的是,为了保证业务的正常处理,被反注册的服务后续可以重新被注册。
步骤105,若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务。
在本申请实施例的一种优选实施例中,步骤105可以包括如下子步骤:
子步骤S31,若所述***第一负载值小于或等于预设负载阈值,则接收服务提供方发送的针对下一组RPC服务的发布请求;
子步骤S32,基于所述发布请求,发布下一组RPC服务。
具体的,在发布一组服务以后,服务提供方计算当前的***第一负载值,如果该***第一负载值小于或等于预设负载阈值,说明当前***并没有过载,此时,服务提供方可以向注册中心发送发布请求,以请求注册中心发布下一组服务,注册中心基于该发布请求,继续发布下一组服务。
在发布下一组服务以后,服务提供方继续计算当前***的负载,如果负载大于预设负载阈值,则向注册中心反注册在前所暴露的服务,如果负载小于或等于预设负载阈值,则向注册中心请求暴露下一组服务,以此类推,直到所有服务发布完毕。
当所有服务发布完毕以后,本申请实施例还可以包括如下步骤:
当所有服务发布完毕以后,获取所述服务提供方的***第二负载值;若所述***第二负载值大于预设负载阈值,则对所述服务提供方中的所有已发布的所有服务进行反注册。
在具体实现中,RPC框架中可以设置一个数据结构以保存所有服务,并会对其发布的状态进行标记,因此注册中心可以根据该标记的状态获知有多少服务已经发布,多少未发布。
当所有服务发布完毕以后,服务提供方可以对***负载再进行一次计算,得到***第二负载值,如果该***第二负载值高于预设负载阈值,说明当前***的load仍旧很高,此时,服务提供方可以请求注册中心反注册所有的服务。
在本申请实施例的一种优选实施例中,还可以包括如下步骤:
静默预设时间段后,获取所述服务提供方的***第三负载值;当所述***第三负载值小于或等于预设负载阈值,对所述进行反注册的服务进行重新注册。
在本申请实施例中,当所有服务被反注册以后,经过一阵静默期后,如果服务提供方的***负载值小于或等于预设负载阈值,则对反注册掉的服务进行重新注册。
当所有RPC服务都经过JIT预热后,RPC服务框架将所有的服务全部注册,***开始接受请求,进行工作。
本申请实施例基于***负载,实现动态分组服务发布,将服务逐个暴露出去,每暴露一组服务时计算操作***的load,来判断是否需要将已注册的服务反注册。如果***的load超过预设负载阈值(意味着***繁忙),则将已经注册的服务进行反注册。每个服务被注册后都会引发这个服务相关的.class文件的JIT编译,这样就保证对每个服务JIT后,这个服务不再有流量进入,一方面保证请求回路由到未重启的机器上,一方面所有的***负载用于JIT和执行别的服务,从而提高业务的正确性和稳定性。
为了使本领域技术人员能够更好地理解本申请实施例,以下以一个具体示例对本申请实施例进行说明。
如图2的服务发布示意图所示,假设某个web应用中具有下单功能,该下单功能所关联的服务包括打开商品详情页、加入购物车、打开购物车、选择商品、结算等多个服务。采用如下步骤进行服务分层发布:
1、在web应用刚开启时,对于要发布的多个服务,切割成N层进行发布,并确定每一层的服务个数。
2、每发布一层服务后,进入静默期,计算当前机器的***负载Load,如果***负载高于预设阈值,则将之前发布的服务反注册;在步骤2中,让JVM去预热这些服务的代码,,注销已发布的服务,使得这些服务并不向外暴露,这样就不会有请求进来;继续执行步骤4;
3、如果***负载低于预设阈值,则继续判断是否需要进行分层发布,如果需要,则返回步骤2,不过不需要,则执行步骤4;
4、判断当前***负载是否仍然高于阈值;如果是,则注销所有服务,静默一段时间后,对所有的服务重新发布;如果否,则分层发布结束,***开始接受请求,工作。
在本实例中,RPC服务框架可以在应用启动暴露服务的时候,进行决策,通过对不同服务的注册/反注册将不同的代码诱发JIT,已经注册过的服务,接受了流量预热后进行反注册,保证机器资源优先用于JIT,也保证了业务的成功率。
参照图3,示出了本申请的一种服务发布的方法实施例2的步骤流程图,本申请实施例可以基于服务提供方的角度进行说明,具体可以包括如下步骤:
步骤301,在应用启动的过程中,确定待发布的多个远程过程调用RPC服务;
应用程序为分布式部署的应用程序,该应用程序可以对应多台机器,包括多个服务提供方以及多个服务消费方。
在应用程序启动的过程中,服务提供方可以确定其为该应用提供的服务的数量,作为待发布的多个RPC服务。
步骤302,针对所述多个RPC服务,向注册中心发送注册请求;
当服务提供方确定待发布的多个RPC服务以后,可以通过向注册中心发送注册请求请求注册中心注册该多个RPC服务。
作为一种示例,该注册请求可以表示为PUBLISH_SERVICE。
则注册中心用于基于所述注册请求,将待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数。
具体的,注册中心可以从服务提供方推送的PUBLISH_SERVICE中获知服务提供方待发布RPC服务,随后,注册中心可以读取预置的配置文件中设置的服务分组策略,将待发布的RPC服务进行分组,得到对应的N组服务,并将分组情况告知服务提供方。
步骤303,每发布一组RPC服务时,获取实时的***第一负载值;
在本申请实施例中,当得到N组服务以后,注册中心可以逐组进行服务暴露,以达到动态分组发布的目的。
需要说明的是,每暴露一组服务时,该组中的多个服务也是逐个进行暴露的。
当注册中心暴露一组服务时,告知服务提供方,此时,服务提供方可以用指定文件来计算***第一负载值。
步骤304,若所述***第一负载值大于预设负载阈值,则向所述注册中心发送反注册请求;
当服务提供方判定当前***的***第一负载值大于预设负载阈值时,可以向注册中心提出反注册请求以反注册当前发布的服务,该反注册请求中可以包括要求反注册的服务的标识。
作为一种示例,该反注册请求可以描述为PUBLISH_CANCEL_SERVICE。
则注册中心用于基于所述反注册请求,将所述服务提供方当前发布的RPC服务进行反注册。
在实际中,注册中心可以维护一个针对已注册的服务的服务列表,当服务提供方对一个或多个服务向注册中心进行注册以后,注册中心可以将注册的一个或多个服务添加到服务列表中,并将该服务列表发送至服务消费方(consumer),每次RPC调用,客户端会从服务列表里选择一台服务提供方的机器进行调用。
相应的,当服务提供方进行服务的反注册时,注册中心可以对服务列表进行更新。
步骤305,若所述***第一负载值小于或等于预设负载阈值,则向所述注册中心发送下一组RPC服务的发布请求。
则所述注册中心用于基于所述发布请求,发布下一组RPC服务。
具体的,在发布一组服务以后,服务提供方计算当前的***第一负载值,如果该***第一负载值小于或等于预设负载阈值,说明当前***并没有过载,此时,服务提供方可以向注册中心发送发布请求,以请求注册中心发布下一组服务,注册中心基于该发布请求,继续发布下一组服务。
在发布下一组服务以后,服务提供方继续计算当前***的负载,如果负载大于预设负载阈值,则向注册中心反注册在前所暴露的服务,如果负载小于或等于预设负载阈值,则向注册中心请求暴露下一组服务,以此类推,直到所有服务发布完毕。
当所有服务发布完毕以后,本申请实施例还可以包括如下步骤:
当所有服务发布完毕以后,获取***第二负载值;若所述***第二负载值大于预设负载阈值,则向注册中心发出反注册所有服务的注销请求。
则所述注册中心用于基于所述注销请求,对所述服务提供方中的所有已发布的所有服务进行反注册。
在具体实现中,RPC框架中可以设置一个数据结构以保存所有服务,并会对其发布的状态进行标记,因此注册中心可以根据该标记的状态获知有多少服务已经发布,多少未发布。当所有服务发布完毕以后,向服务提供方发送发布完成信息,则服务提供方接收到发布完成信息以后,则可以确定所有服务发布完毕。
当所有服务发布完毕以后,服务提供方可以对***负载再进行一次计算,得到***第二负载值,如果该***第二负载值高于预设负载阈值,说明当前***的load仍旧很高,此时,服务提供方可以生成注销请求,该注销请求用于请求注册中心反注册该服务提供方的所有的服务。
注册中心接收到注销请求以后,对该服务提供方的所有的服务进行反注册,并更新服务列表,将服务列表发送至服务消费方。
在本申请实施例的一种优选实施例中,还可以包括如下步骤:
静默预设时间段后,获取所述服务提供方的***第三负载值;当所述***第三负载值小于或等于预设负载阈值,则向注册中心发出重新注册请求,以请求注册中心对所述进行反注册的服务进行重新注册。
在本申请实施例中,当所有服务被反注册以后,经过一阵静默期后,如果服务提供方的***负载值小于或等于预设负载阈值,则对反注册掉的服务进行重新注册。
当所有RPC服务都经过JIT预热后,RPC服务框架将所有的服务全部注册,***开始接受请求,进行工作。
在本申请实施例中,基于服务提供方的***负载,实现动态分组服务发布,将服务逐个暴露出去,每暴露一组服务时计算操作***的load,来判断是否需要将已注册的服务反注册。如果***的load超过预设负载阈值(意味着***繁忙),则将已经注册的服务进行反注册。每个服务被注册后都会引发这个服务相关的.class文件的JIT编译,这样就保证对每个服务JIT后,这个服务不再有流量进入,一方面保证请求回路由到未重启的机器上,一方面所有的***负载用于JIT和执行别的服务,从而提高业务的正确性和稳定性。
参照图4,示出了本申请的一种服务发布的方法实施例3的步骤流程图,具体可以包括如下步骤:
步骤401,接收注册中心发送的服务列表;
在实际中,每台服务端的机器都有能力向注册中心注册或反注册自身,以向注册中心注册或反注册自己提供的服务。注册中心可以维护一个针对已注册的服务的服务列表,该服务列表可以包括一个或多个服务提供方提供的一个或多个服务的标识。
当服务提供方对一个或多个服务向注册中心进行注册以后,注册中心可以将注册的一个或多个服务添加到服务列表中,并将该服务列表发送至服务消费方(consumer),每次RPC调用,服务消费方会从服务列表里选择一台服务提供方的机器进行调用。
步骤402,接收注册中心发送的更新的服务列表;
在本申请实施例中,该更新的服务列表可以为注册中心在应用启动的过程中,获取当前服务提供方待发布的多个RPC服务以后,将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值,并在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册后得到的列表。
当服务提供方提出对服务进行反注册时,注册中心可以对服务列表进行更新。
在一种实施方式中,上述更新可以包括在服务列表中删除该进行反注册对应的服务。
当然,本申请实施例还可以有其他更新方式,例如,将进行反注册的服务添加预设的反注册标识,本申请实施例对此不作限制。
当服务中心将服务列表进行更新以后,将更新的服务列表发送至服务消费方。
步骤403,将所述更新的服务列表替换所述服务列表。
服务消费方获得更新的列表以后,将该更新的服务列表替换所述服务列表,已进行客户端侧的服务列表的更新。
在服务消费方收到的更新的服务列表中,被反注册的服务不存在或不可用,因此,对每个服务JIT后,反注册的服务并不向外暴露,这样就不会有请求进来,即不再有流量进入,一方面保证请求回路由到未重启的机器上,一方面所有的***负载用于JIT和执行别的服务,从而提高业务的正确性和稳定性。
在本申请实施例的一种优选实施例中,当所有服务发布完毕以后,服务提供方可以对***负载再进行一次计算,得到***第二负载值,如果该***第二负载值高于预设负载阈值,说明当前***的load仍旧很高,此时,服务提供方可以生成注销请求,该注销请求用于请求注册中心反注册该服务提供方的所有的服务。
当注册中心注销该服务提供方的所有服务以后,对服务列表进行更新,删除注销的服务的记录,并将更新后的服务列表发送至服务消费方,在服务消费方侧,将最新接收到的服务列表替换前一个服务列表,以进行服务列表的更新。
在本申请实施例的一种优选实施例中,当所有服务被反注册以后,经过一阵静默期后,如果服务提供方的***负载值小于或等于预设负载阈值,则服务提供方可以向注册中心请求对反注册掉的服务进行重新注册。
注册中心对反注册的服务重新进行注册时,对服务列表进行更新,增加重新注册的服务的记录,并将更新后的服务列表发送至服务消费方,在服务消费方侧,将最新接收到的服务列表替换前一个服务列表,以进行服务列表的更新。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图5,示出了本申请的一种服务发布的装置实施例1的结构框图,可以包括如下模块:
待发布服务获取模块501,用于在应用程序启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务;
服务分组模块502,用于将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
***负载获取模块503,用于每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;
反注册模块504,用于在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册;
逐层发布模块505,用于在所述***第一负载值小于或等于预设负载阈值时,发布下一组RPC服务。
在本申请实施例的一种优选实施例中,所述装置还包括:
第二负载值计算模块,用于在所有服务发布完毕以后,获取所述服务提供方的***第二负载值;
注销模块,用于在所述***第二负载值大于预设负载阈值时,则对所述服务提供方中的所有已发布的所有服务进行反注册。
在本申请实施例的一种优选实施例中,所述装置还包括:
第三负载值计算模块,用于静默预设时间段后,获取所述服务提供方的***第三负载值;
重注册模块,用于在所述***第三负载值小于或等于预设负载阈值,对所述进行反注册的服务进行重新注册。
在本申请实施例的一种优选实施例中,还包括:
服务列表添加模块,用于当所述服务提供方对一个或多个服务进行注册以后,将所述注册的一个或多个服务添加到预设的服务列表中;
服务列表发送模块,用于将所述服务列表发送至服务消费方。
在本申请实施例的一种优选实施例中,所述反注册模块504包括:
反注册请求接收子模块,用于若所述***第一负载值大于预设负载阈值,则接收所述服务提供方对当前发布的RPC服务进行反注册的反注册请求;
服务反注册子模块,用于基于所述反注册请求对对应的RPC服务进行反注册。
在本申请实施例的一种优选实施例中,所述装置还包括:
列表更新模块,用于当所述服务提供方进行服务的反注册时,对所述服务列表进行更新,所述更新包括删除所述反注册对应的服务;
更新列表发送模块,用于将更新后的服务列表发送至服务消费方,以进行服务消费方侧的服务列表的更新。
在本申请实施例的一种优选实施例中,所述逐层发布模块505包括:
发布请求接收子模块,用于若所述***第一负载值小于或等于预设负载阈值,则接收服务提供方发送的针对下一组RPC服务的发布请求;
服务发布子模块,用于基于所述发布请求,发布下一组RPC服务。
在本申请实施例的一种优选实施例中,所述服务分组模块502包括:
分组策略获取子模块,用于读取配置文件中预置的服务分组策略;
分组子模块,用于按照所述服务分组策略将所述待发布的RPC服务进行分组,得到对应的N组服务。
在本申请实施例的一种优选实施例中,所述***负载获取模块503还用于:
每发布一组RPC服务时,通过读取指定文件来获取当前服务提供方实时的***第一负载值。
对于图5的装置实施例而言,由于其与上述图1的方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图6,示出了本申请的一种服务发布的装置实施例2的结构框图,可以包括如下模块:
待发布服务确定模块601,用于在应用启动的过程中,确定待发布的多个远程过程调用RPC服务;
注册请求发送模块602,用于针对所述多个RPC服务,向注册中心发送注册请求,所述注册中心用于基于所述注册请求,将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
***负载确定模块603,用于每发布一组RPC服务时,获取实时的***第一负载值;
反注册请求发送模块604,用于在所述***第一负载值大于预设负载阈值时,向所述注册中心发送反注册请求,所述注册中心用于基于所述反注册请求,将所述服务提供方当前发布的RPC服务进行反注册;
发布请求发送模块605,用于在所述***第一负载值小于或等于预设负载阈值时,向所述注册中心发送下一组RPC服务的发布请求,所述注册中心用于基于所述发布请求,发布下一组RPC服务。
在本申请实施例的一种优选实施例中,所述装置还包括:
第二负载值计算模块,用于当所有服务发布完毕以后,获取***第二负载值;
注销请求发送模块,用于若所述***第二负载值大于预设负载阈值,则向注册中心发出反注册所有服务的注销请求,所述注册中心用于基于所述注销请求,对所述服务提供方中的所有已发布的所有服务进行反注册。
在本申请实施例的一种优选实施例中,所述装置还包括:
第三负载值计算模块,用于静默预设时间段后,获取所述服务提供方的***第三负载值;
重新注册请求发送模块,用于当所述***第三负载值小于或等于预设负载阈值,则向注册中心发出重新注册请求,以请求注册中心对所述进行反注册的服务进行重新注册。
对于图6的装置实施例而言,由于其与上述方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图7,示出了本申请的一种服务发布的装置实施例3的结构框图,可以包括如下模块:
服务列表接收模块701,用于接收注册中心发送的服务列表,所述服务列表包括一个或多个服务提供方提供的一个或多个服务的标识;
更新列表接收模块702,用于接收注册中心发送的更新的服务列表,所述更新的服务列表为所述注册中心在应用启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务以后,将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值,并在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册后得到的列表;
列表更新模块703,用于将所述更新的服务列表替换所述服务列表。
对于图7的装置实施例而言,由于其与上述方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还提供了一种服务发布的***,所述***包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
在应用程序启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务;
将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务。
可选地,该一个或多个模块可以具有如下功能:
当所有服务发布完毕以后,获取所述服务提供方的***第二负载值;
若所述***第二负载值大于预设负载阈值,则对所述服务提供方中的所有已发布的所有服务进行反注册。
可选地,该一个或多个模块可以具有如下功能:
静默预设时间段后,获取所述服务提供方的***第三负载值;
当所述***第三负载值小于或等于预设负载阈值,对所述进行反注册的服务进行重新注册。
可选地,该一个或多个模块可以具有如下功能:
当所述服务提供方对一个或多个服务进行注册以后,将所述注册的一个或多个服务添加到预设的服务列表中;
将所述服务列表发送至服务消费方。
可选地,该一个或多个模块可以具有如下功能:
若所述***第一负载值大于预设负载阈值,则接收所述服务提供方对当前发布的RPC服务进行反注册的反注册请求;
基于所述反注册请求对对应的RPC服务进行反注册。
可选地,该一个或多个模块可以具有如下功能:
当所述服务提供方进行服务的反注册时,对所述服务列表进行更新,所述更新包括删除所述反注册对应的服务;
将更新后的服务列表发送至服务消费方,以进行服务消费方侧的服务列表的更新。
可选地,该一个或多个模块可以具有如下功能:
若所述***第一负载值小于或等于预设负载阈值,则接收服务提供方发送的针对下一组RPC服务的发布请求;
基于所述发布请求,发布下一组RPC服务。
可选地,该一个或多个模块可以具有如下功能:
读取配置文件中预置的服务分组策略;
按照所述服务分组策略将所述待发布的RPC服务进行分组,得到对应的N组服务。
可选地,该一个或多个模块可以具有如下功能:
每发布一组RPC服务时,通过读取指定文件来获取当前服务提供方实时的***第一负载值。
本申请实施例还提供了一种服务发布的服务器,所述服务器包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
在应用启动的过程中,确定待发布的多个远程过程调用RPC服务;
针对所述多个RPC服务,向注册中心发送注册请求,所述注册中心用于基于所述注册请求,将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则向所述注册中心发送反注册请求,所述注册中心用于基于所述反注册请求,将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则向所述注册中心发送下一组RPC服务的发布请求,所述注册中心用于基于所述发布请求,发布下一组RPC服务。
可选地,该一个或多个模块可以具有如下功能:
当所有服务发布完毕以后,获取***第二负载值;若所述***第二负载值大于预设负载阈值,则向注册中心发出反注册所有服务的注销请求,所述注册中心用于基于所述注销请求,对所述服务提供方中的所有已发布的所有服务进行反注册。
可选地,该一个或多个模块可以具有如下功能:
静默预设时间段后,获取所述服务提供方的***第三负载值;
当所述***第三负载值小于或等于预设负载阈值,则向注册中心发出重新注册请求,以请求注册中心对所述进行反注册的服务进行重新注册。
本申请实施例还提供了一种服务发布的客户端,所述客户端包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
接收注册中心发送的服务列表,所述服务列表包括一个或多个服务提供方提供的一个或多个服务的标识;
接收注册中心发送的更新的服务列表,所述更新的服务列表为所述注册中心在应用启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务以后,将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值,并在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册后得到的列表;
将所述更新的服务列表替换所述服务列表。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本公开的实施例可被实现为使用任意适当的硬件和/或软件进行想要的配置的***。图8示意性地示出了可被用于实现本公开中所述的各个实施例的示例性***800。
对于一个实施例,图8示出了示例性***800,该***具有一个或多个处理器802、被耦合到(一个或多个)处理器802中的至少一个的***控制模块(芯片组)804、被耦合到***控制模块804的***存储器806、被耦合到***控制模块804的非易失性存储器(NVM)/存储设备808、被耦合到***控制模块804的一个或多个输入/输出设备810,以及被耦合到***控制模块806的网络接口812。
处理器802可包括一个或多个单核或多核处理器,处理器802可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,***800能够作为本申请实施例中所述的RPC服务框架。在其他实施例中,***800能够作为图1所示的实施例或其他所述实施例中的任意一个所述的注册中心。在其他实施例中,***800能够作为服务提供方或服务消费方。
在一些实施例中,***800可包括具有指令的一个或多个计算机可读介质(例如,***存储器806或NVM/存储设备808)以及与该一个或多个计算机可读介质相合并被配置为执行指令以实现模块从而执行本公开中所述的动作的一个或多个处理器802。
对于一个实施例,***控制模块804可包括任意适当的接口控制器,以向(一个或多个)处理器802中的至少一个和/或与***控制模块804通信的任意适当的设备或组件提供任意适当的接口。
***控制模块804可包括存储器控制器模块,以向***存储器806提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
***存储器806可被用于例如为***800加载和存储数据和/或指令。对于一个实施例,***存储器806可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,***存储器806可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,***控制模块804可包括一个或多个输入/输出控制器,以向NVM/存储设备808及(一个或多个)输入/输出设备810提供接口。
例如,NVM/存储设备808可被用于存储数据和/或指令。NVM/存储设备808可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备808可包括在物理上作为***800被安装在其上的设备的一部分的存储资源,或者其可被该设备访问不必作为该设备的一部分。例如,NVM/存储设备808可通过网络经由(一个或多个)输入/输出设备810进行访问。
(一个或多个)输入/输出设备810可为***800提供接口以与任意其他适当的设备通信,输入/输出设备810可以包括通信组件、音频组件、传感器组件等。网络接口812可为***800提供接口以通过一个或多个网络通信,***800可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器802中的至少一个可与***控制模块804的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器802中的至少一个可与***控制模块804的一个或多个控制器的逻辑封装在一起以形成***级封装(SiP)。对于一个实施例,(一个或多个)处理器802中的至少一个可与***控制模块804的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器802中的至少一个可与***控制模块804的一个或多个控制器的逻辑集成在同一模具上以形成片上***(SoC)。
在各个实施例中,***800可以但不限于是:分布式***、服务器、客户端、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,***800可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,***800包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
其中,如果显示器包括触摸面板,显示屏可以被实现为触屏显示器,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在终端设备时,可以使得该终端设备执行本申请实施例中各方法步骤的指令(instructions)。
参考图9,示出了本申请的一种服务发布***实施例的结构示意图,该服务发布***可以包括注册中心901、服务提供方902以及服务消费方903;
所述服务提供方902,确定待发布的多个远程过程调用RPC服务,并针对所述多个RPC服务生成注册请求;
所述注册中心901,基于所述服务器发送的注册请求,生成服务列表,并将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务;更新所述服务列表;
所述服务消费方903,接收所述注册中心发送的所述服务列表以及更新的服务列表,并将所述更新的服务列表替换所述服务列表。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序操作指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序操作指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的操作指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序操作指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的操作指令产生包括操作指令装置的制造品,该操作指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序操作指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的操作指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种服务发布的方法、装置、***、服务器及客户端进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (22)
1.一种服务发布***,其特征在于,所述***包括注册中心、服务提供方以及服务消费方;
所述服务提供方,确定待发布的多个远程过程调用RPC服务,并针对所述多个RPC服务生成注册请求;
所述注册中心,基于所述服务器发送的注册请求,生成服务列表,并将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务;更新所述服务列表;
所述服务消费方,接收所述注册中心发送的所述服务列表以及更新的服务列表,并将所述更新的服务列表替换所述服务列表。
2.一种服务发布的方法,应用于注册中心,其特征在于,所述方法包括:
在应用程序启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务;
将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所有服务发布完毕以后,获取所述服务提供方的***第二负载值;
若所述***第二负载值大于预设负载阈值,则对所述服务提供方中的所有已发布的所有服务进行反注册。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
静默预设时间段后,获取所述服务提供方的***第三负载值;
当所述***第三负载值小于或等于预设负载阈值,对所述进行反注册的服务进行重新注册。
5.根据权利要求2-4任一项所述的方法,其特征在于,在所述每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值的步骤之后,还包括:
当所述服务提供方对一个或多个服务进行注册以后,将所述注册的一个或多个服务添加到预设的服务列表中;
将所述服务列表发送至服务消费方。
6.根据权利要求5所述的方法,其特征在于,所述若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册的步骤包括:
若所述***第一负载值大于预设负载阈值,则接收所述服务提供方对当前发布的RPC服务进行反注册的反注册请求;
基于所述反注册请求对对应的RPC服务进行反注册。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述服务提供方进行服务的反注册时,对所述服务列表进行更新,所述更新包括删除所述反注册对应的服务;
将更新后的服务列表发送至服务消费方,以进行服务消费方侧的服务列表的更新。
8.根据权利要求2所述的方法,其特征在于,所述若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务的步骤包括:
若所述***第一负载值小于或等于预设负载阈值,则接收服务提供方发送的针对下一组RPC服务的发布请求;
基于所述发布请求,发布下一组RPC服务。
9.根据权利要求2所述的方法,其特征在于,所述将所述待发布的RPC服务进行分组,得到N组RPC服务的步骤包括:
读取配置文件中预置的服务分组策略;
按照所述服务分组策略将所述待发布的RPC服务进行分组,得到对应的N组服务。
10.根据权利要求2所述的方法,其特征在于,所述每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值的步骤包括:
每发布一组RPC服务时,通过读取指定文件来获取当前服务提供方实时的***第一负载值。
11.一种服务发布的方法,应用于服务提供方,其特征在于,所述方法包括:
在应用启动的过程中,确定待发布的多个远程过程调用RPC服务;
针对所述多个RPC服务,向注册中心发送注册请求,所述注册中心用于基于所述注册请求,将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则向所述注册中心发送反注册请求,所述注册中心用于基于所述反注册请求,将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则向所述注册中心发送下一组RPC服务的发布请求,所述注册中心用于基于所述发布请求,发布下一组RPC服务。
12.根据权利要求11所述的方法,其特征在于,还包括:
当所有服务发布完毕以后,获取***第二负载值;若所述***第二负载值大于预设负载阈值,则向注册中心发出反注册所有服务的注销请求,所述注册中心用于基于所述注销请求,对所述服务提供方中的所有已发布的所有服务进行反注册。
13.根据权利要求12所述的方法,其特征在于,还包括:
静默预设时间段后,获取所述服务提供方的***第三负载值;
当所述***第三负载值小于或等于预设负载阈值,则向注册中心发出重新注册请求,以请求注册中心对所述进行反注册的服务进行重新注册。
14.一种服务更新的方法,应用于服务消费方,其特征在于,包括:
接收注册中心发送的服务列表,所述服务列表包括一个或多个服务提供方提供的一个或多个服务的标识;
接收注册中心发送的更新的服务列表,所述更新的服务列表为所述注册中心在应用启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务以后,将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值,并在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册后得到的列表;
将所述更新的服务列表替换所述服务列表。
15.一种服务发布的装置,其特征在于,所述装置包括:
待发布服务获取模块,用于在应用程序启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务;
服务分组模块,用于将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
***负载获取模块,用于每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;
反注册模块,用于在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册;
逐层发布模块,用于在所述***第一负载值小于或等于预设负载阈值时,发布下一组RPC服务。
16.一种服务发布的装置,其特征在于,所述装置包括:
待发布服务确定模块,用于在应用启动的过程中,确定待发布的多个远程过程调用RPC服务;
注册请求发送模块,用于针对所述多个RPC服务,向注册中心发送注册请求,所述注册中心用于基于所述注册请求,将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
***负载确定模块,用于每发布一组RPC服务时,获取实时的***第一负载值;
反注册请求发送模块,用于在所述***第一负载值大于预设负载阈值时,向所述注册中心发送反注册请求,所述注册中心用于基于所述反注册请求,将所述服务提供方当前发布的RPC服务进行反注册;
发布请求发送模块,用于在所述***第一负载值小于或等于预设负载阈值时,向所述注册中心发送下一组RPC服务的发布请求,所述注册中心用于基于所述发布请求,发布下一组RPC服务。
17.一种服务更新的装置,其特征在于,包括:
服务列表接收模块,用于接收注册中心发送的服务列表,所述服务列表包括一个或多个服务提供方提供的一个或多个服务的标识;
更新列表接收模块,用于接收注册中心发送的更新的服务列表,所述更新的服务列表为所述注册中心在应用启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务以后,将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值,并在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册后得到的列表;
列表更新模块,用于将所述更新的服务列表替换所述服务列表。
18.一种服务发布的***,其特征在于,所述***包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
在应用程序启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务;
将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则发布下一组RPC服务。
19.一种服务发布的服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
在应用启动的过程中,确定待发布的多个远程过程调用RPC服务;
针对所述多个RPC服务,向注册中心发送注册请求,所述注册中心用于基于所述注册请求,将所述待发布的RPC服务进行分组,得到N组RPC服务,其中N为正整数;
每发布一组RPC服务时,获取实时的***第一负载值;
若所述***第一负载值大于预设负载阈值,则向所述注册中心发送反注册请求,所述注册中心用于基于所述反注册请求,将所述服务提供方当前发布的RPC服务进行反注册;
若所述***第一负载值小于或等于预设负载阈值,则向所述注册中心发送下一组RPC服务的发布请求,所述注册中心用于基于所述发布请求,发布下一组RPC服务。
20.一种服务发布的客户端,其特征在于,所述客户端包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:
接收注册中心发送的服务列表,所述服务列表包括一个或多个服务提供方提供的一个或多个服务的标识;
接收注册中心发送的更新的服务列表,所述更新的服务列表为所述注册中心在应用启动的过程中,获取当前服务提供方待发布的多个远程过程调用RPC服务以后,将所述待发布的RPC服务进行分组,得到N组RPC服务,每发布一组RPC服务时,获取所述服务提供方实时的***第一负载值,并在所述***第一负载值大于预设负载阈值时,将所述服务提供方当前发布的RPC服务进行反注册后得到的列表;
将所述更新的服务列表替换所述服务列表。
21.一种装置,其特征在于,包括:
一个或多个处理器;和
其上存储的一个或多个计算机可读介质中的指令,由所述一个或多个处理器执行时,导致所述装置执行如权利要求1-9、10-12、13的方法。
22.一个或多个计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得终端设备执行的权利要求1-9、10-12、13的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611099694.4A CN108134766B (zh) | 2016-12-01 | 2016-12-01 | 一种服务发布的方法、装置、***、服务器及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611099694.4A CN108134766B (zh) | 2016-12-01 | 2016-12-01 | 一种服务发布的方法、装置、***、服务器及客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108134766A true CN108134766A (zh) | 2018-06-08 |
CN108134766B CN108134766B (zh) | 2020-12-18 |
Family
ID=62387797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611099694.4A Active CN108134766B (zh) | 2016-12-01 | 2016-12-01 | 一种服务发布的方法、装置、***、服务器及客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108134766B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109636304A (zh) * | 2018-10-29 | 2019-04-16 | 浙江口碑网络技术有限公司 | 业务***的发布方法及装置、存储介质、电子装置 |
CN111045833A (zh) * | 2018-10-15 | 2020-04-21 | 北京京东尚科信息技术有限公司 | 接口调用的方法和装置 |
CN111240760A (zh) * | 2020-01-08 | 2020-06-05 | 江苏满运软件科技有限公司 | 基于注册中心的应用发布方法、***、存储介质及设备 |
CN112099921A (zh) * | 2020-09-27 | 2020-12-18 | 中国建设银行股份有限公司 | 基于JVM的Java应用***预热方法及*** |
CN112243024A (zh) * | 2020-09-17 | 2021-01-19 | 北京金山云网络技术有限公司 | 服务控制方法、装置、服务器及存储介质 |
CN112449005A (zh) * | 2020-11-11 | 2021-03-05 | 北京健康之家科技有限公司 | 请求分配方法、装置、电子设备及可读存储介质 |
CN112463408A (zh) * | 2020-11-26 | 2021-03-09 | 北京达佳互联信息技术有限公司 | 远程过程调用服务的启动方法和装置、服务器、存储介质 |
CN113064596A (zh) * | 2021-04-01 | 2021-07-02 | 广州虎牙科技有限公司 | 事件注册方法、应用程序的编译方法、装置、电子设备 |
CN113765870A (zh) * | 2020-09-01 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种远程服务调用方法、装置和*** |
CN113821351A (zh) * | 2020-11-05 | 2021-12-21 | 北京京东乾石科技有限公司 | 远程过程调用方法及装置、可读存储介质及电子设备 |
CN115002194A (zh) * | 2022-05-25 | 2022-09-02 | 中国工商银行股份有限公司 | 一种微服务的管理方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094224A (zh) * | 2006-06-22 | 2007-12-26 | 华为技术有限公司 | 提供服务、访问服务、注册与注销服务的方法及*** |
US20110107358A1 (en) * | 2009-10-30 | 2011-05-05 | Symantec Corporation | Managing remote procedure calls when a server is unavailable |
CN102571550A (zh) * | 2010-12-30 | 2012-07-11 | 北京亿阳信通软件研究院有限公司 | 一种通用的信息交互平台和方法 |
CN105141452A (zh) * | 2015-08-07 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种基于cxf的高性能服务***及方法 |
CN105573842A (zh) * | 2015-12-21 | 2016-05-11 | 北京奇虎科技有限公司 | 在应用程序中进行进程回收处理的方法及装置 |
-
2016
- 2016-12-01 CN CN201611099694.4A patent/CN108134766B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094224A (zh) * | 2006-06-22 | 2007-12-26 | 华为技术有限公司 | 提供服务、访问服务、注册与注销服务的方法及*** |
US20110107358A1 (en) * | 2009-10-30 | 2011-05-05 | Symantec Corporation | Managing remote procedure calls when a server is unavailable |
CN102571550A (zh) * | 2010-12-30 | 2012-07-11 | 北京亿阳信通软件研究院有限公司 | 一种通用的信息交互平台和方法 |
CN105141452A (zh) * | 2015-08-07 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种基于cxf的高性能服务***及方法 |
CN105573842A (zh) * | 2015-12-21 | 2016-05-11 | 北京奇虎科技有限公司 | 在应用程序中进行进程回收处理的方法及装置 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045833A (zh) * | 2018-10-15 | 2020-04-21 | 北京京东尚科信息技术有限公司 | 接口调用的方法和装置 |
CN111045833B (zh) * | 2018-10-15 | 2024-06-18 | 北京京东尚科信息技术有限公司 | 接口调用的方法和装置 |
CN109636304A (zh) * | 2018-10-29 | 2019-04-16 | 浙江口碑网络技术有限公司 | 业务***的发布方法及装置、存储介质、电子装置 |
CN111240760A (zh) * | 2020-01-08 | 2020-06-05 | 江苏满运软件科技有限公司 | 基于注册中心的应用发布方法、***、存储介质及设备 |
CN111240760B (zh) * | 2020-01-08 | 2022-09-16 | 江苏满运软件科技有限公司 | 基于注册中心的应用发布方法、***、存储介质及设备 |
CN113765870A (zh) * | 2020-09-01 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种远程服务调用方法、装置和*** |
CN113765870B (zh) * | 2020-09-01 | 2023-09-05 | 北京沃东天骏信息技术有限公司 | 一种远程服务调用方法、装置和*** |
CN112243024B (zh) * | 2020-09-17 | 2022-05-06 | 北京金山云网络技术有限公司 | 服务控制方法、装置、服务器及存储介质 |
CN112243024A (zh) * | 2020-09-17 | 2021-01-19 | 北京金山云网络技术有限公司 | 服务控制方法、装置、服务器及存储介质 |
CN112099921A (zh) * | 2020-09-27 | 2020-12-18 | 中国建设银行股份有限公司 | 基于JVM的Java应用***预热方法及*** |
CN113821351A (zh) * | 2020-11-05 | 2021-12-21 | 北京京东乾石科技有限公司 | 远程过程调用方法及装置、可读存储介质及电子设备 |
CN112449005A (zh) * | 2020-11-11 | 2021-03-05 | 北京健康之家科技有限公司 | 请求分配方法、装置、电子设备及可读存储介质 |
CN112449005B (zh) * | 2020-11-11 | 2023-11-17 | 北京水滴科技集团有限公司 | 请求分配方法、装置、电子设备及可读存储介质 |
CN112463408A (zh) * | 2020-11-26 | 2021-03-09 | 北京达佳互联信息技术有限公司 | 远程过程调用服务的启动方法和装置、服务器、存储介质 |
CN113064596A (zh) * | 2021-04-01 | 2021-07-02 | 广州虎牙科技有限公司 | 事件注册方法、应用程序的编译方法、装置、电子设备 |
CN113064596B (zh) * | 2021-04-01 | 2024-04-19 | 广州虎牙科技有限公司 | 事件注册方法、应用程序的编译方法、装置、电子设备 |
CN115002194A (zh) * | 2022-05-25 | 2022-09-02 | 中国工商银行股份有限公司 | 一种微服务的管理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108134766B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108134766A (zh) | 一种服务发布的方法、装置、***、服务器及客户端 | |
CN108510389B (zh) | 基于区块链的智能合约调用方法、设备及可读存储介质 | |
US8356274B2 (en) | System and methods to create a multi-tenancy software as a service application | |
US8806655B1 (en) | Providing limited versions of applications | |
US8745242B2 (en) | Cloud computing roaming services | |
US9722886B2 (en) | Management of cloud provider selection | |
CN109478134A (zh) | 用跨账户别名执行按需网络代码 | |
US20110258573A1 (en) | Methods, Apparatus and Systems for Displaying and/or Facilitating Interaction with Secure Information via a Channel Grid Framework | |
US20140344123A1 (en) | Dynamically modifying workload patterns in a cloud | |
CN105631035B (zh) | 数据存储方法和装置 | |
US20170371508A1 (en) | Menu management method, server, and system | |
CN110308990A (zh) | 用于扩展计算资源的计算机实施方法和计算*** | |
CN109474522A (zh) | 业务路由的方法、装置及存储介质 | |
JP2013516719A (ja) | 複数のサービスインスタンスのシンジケーション | |
US20220291970A1 (en) | Core to resource mapping and resource to core mapping | |
CN109086136A (zh) | 一种Samba软件的请求处理方法及相关装置 | |
US20110321044A1 (en) | Client hypervisor-based terminal device and operating method thereof | |
CN108153795A (zh) | 一种电子红包的数据处理方法、***和装置 | |
CN108156208A (zh) | 一种应用程序数据的发布方法、装置和*** | |
JP2010272090A (ja) | 処理依頼先管理装置、処理依頼先管理プログラムおよび処理依頼先管理方法 | |
JP7182836B2 (ja) | 分散コンピューティング環境における作業負荷の自動対角スケーリング | |
CN109102200B (zh) | 一种定时任务处理方法及装置 | |
CN114265648B (zh) | 编码调度方法、服务器及客户端和获取远程桌面的*** | |
CN109753353A (zh) | 虚拟机资源分配方法、装置及电子设备 | |
CN116360918A (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 |