CN105553993B - 一种远程服务调用方法、装置及服务器 - Google Patents
一种远程服务调用方法、装置及服务器 Download PDFInfo
- Publication number
- CN105553993B CN105553993B CN201510970916.4A CN201510970916A CN105553993B CN 105553993 B CN105553993 B CN 105553993B CN 201510970916 A CN201510970916 A CN 201510970916A CN 105553993 B CN105553993 B CN 105553993B
- Authority
- CN
- China
- Prior art keywords
- server
- service
- available
- destination
- identification
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000001514 detection method Methods 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 22
- 238000007689 inspection Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 7
- 230000000977 initiatory effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
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/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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供了一种远程服务调用方法、装置及服务器,其中,所述方法包括:在接收到终端应用的服务请求时,从在服务端应用加载的服务查询组件的可用服务分组中选取目标服务器标识,所述服务端应用用于为所述终端应用提供调用服务;根据接收到的服务请求生成远程服务调用请求,并将所述远程服务调用请求发送给所述目标服务器标识所指示的目标服务器,以调用所述目标服务器;若通过所述远程服务调用请求成功调用所述目标服务器,则通过所述目标服务器为所述终端应用提供服务。本发明实施例较好地保证了远程调用的可用性。
Description
技术领域
本发明涉及应用服务处理领域,尤其涉及一种远程服务调用方法、装置及服务器。
背景技术
对于大型互联网级别的应用,考虑到程序架构上的可扩展性,以及服务的可用性,分布式的应用节点架构以及集群技术都是至关重要必不可少的。分布式应用在远程调用的过程中,都需要考虑远程服务的可用性问题。
发明内容
本发明实施例提供一种远程服务调用方法、装置及服务器,可以实现远程调用服务的高可用性。
第一方面,本发明实施例提供了一种远程服务调用方法,包括:
在检测到服务端应用的远程服务调用请求时,从为所述服务端应用加载的服务查询组件中的可用服务分组中选取目标服务器标识;
发起到所述目标服务器标识所指示服务器的连接操作,若连接至所述目标服务器标识所指示的服务器,则确定远程服务调用完成;
若没有连接至所述目标服务器标识所指示的服务器,则再次从所述服务查询组件中的可用服务分组中选取第二服务器标识;
发起到所述第二服务器标识所指示的服务器的连接操作,若连接至所述第二服务器标识所指示的服务器,则确定远程服务调用完成。
其中可选地,所述方法还包括:
若没有连接至所述目标服务器标识所指示的服务器,则将所述目标服务器标识记录到所述服务查询组件中的不可用服务分组中。
其中可选地,所述方法还包括:
从服务管理服务器中获取可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的可用服务分组中;和/或
从服务管理服务器中获取不可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的不可用服务分组中。
其中可选地,所述从服务管理服务器中获取的可用服务器的服务器标识包括:所述服务管理服务器根据为所述服务端应用提供服务的服务器上报的注册消息确定出的服务器标识;和/或,所述服务管理服务器根据对为所述服务端应用提供服务的服务器进行可用性检测的检测结果确定出的可用服务器的服务器标识。
其中可选地,所述方法还包括:
根据预置的更新间隔向为所述服务端应用提供服务的服务器发送检测消息,所述检测消息用于检测所述服务器是否可用;
如果接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器为可用,更新所述可用服务分组中的服务器标识;
如果没有接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器不可用,更新所述不可用服务分组中的服务器标识。
其中可选地,所述方法从所述服务查询组件的可用服务分组中选取目标服务器标识是基于预置的服务负载均衡策略进行选取的;和/或,从所述服务查询组件的可用服务分组中选取第二服务器标识是基于预置的服务负载均衡策略进行选取的。
第二方面,本发明实施例相应地提供了一种远程服务调用装置,包括:
选取模块,用于在检测到对服务端应用的远程服务调用请求时,从为所述服务端应用加载的服务查询组件中的可用服务分组中选取服务器标识;
处理模块,用于在检测到服务端应用的远程服务调用请求时,触发所述选取模块从所述可用服务分组中选取目标服务器标识,并发起到所述目标服务器标识所指示服务器的连接操作,若连接至所述目标服务器标识所指示的服务器,则确定远程服务调用完成;若没有连接至所述目标服务器标识所指示的服务器,则触发所述选取模块再次从所述服务查询组件中的可用服务分组中选取第二服务器标识;发起到所述第二服务器标识所指示的服务器的连接操作,若连接至所述第二服务器标识所指示的服务器,则确定远程服务调用完成。
其中可选地,所述处理模块,还用于若没有连接至所述目标服务器标识所指示的服务器,则将所述目标服务器标识记录到所述服务查询组件中的不可用服务分组中。
其中可选地,所述装置还包括:
第一更新模块,用于从服务管理服务器中获取可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的可用服务分组中;和/或,从服务管理服务器中获取不可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的不可用服务分组中。
其中可选地,所述从服务管理服务器中获取的可用服务器的服务器标识包括:所述服务管理服务器根据为所述服务端应用提供服务的服务器上报的注册消息确定出的服务器标识;和/或,所述服务管理服务器根据对为所述服务端应用提供服务的服务器进行可用性检测的检测结果确定出的可用服务器的服务器标识。
其中可选地,所述装置还包括:
第二更新模块,用于根据预置的更新间隔向为所述服务端应用提供服务的服务器发送检测消息,所述检测消息用于检测所述服务器是否可用;如果接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器为可用,更新所述可用服务分组中的服务器标识;如果没有接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器不可用,更新所述不可用服务分组中的服务器标识。
其中可选地,所述处理器,具体用于基于预置的服务负载均衡策略从所述服务查询组件的可用服务分组中选取目标服务器标识;和/或,基于预置的服务负载均衡策略从所述服务查询组件的可用服务分组中选取第二服务器标识。
第三方面,本发明实施例相应地提供了一种服务器,所述服务器包括上述提到的装置。
本发明实施例可以根据预置的可用服务器标识列表来发起到服务器的连接,较好地保证了远程调用服务的可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种远程服务调用方法的流程示意图;
图2是本发明实施例的一种远程服务调用系统的结构示意图;
图3是本发明实施例的另一种远程服务调用方法的流程示意图;
图4是本发明的一种服务器标识更新的实施例流程示意图;
图5是本发明实施例的另一种服务器标识更新的实施例流程示意图;
图6是本发明实施例的一种远程服务调用装置的结构示意图;
图7是本发明实施例的另一种远程服务调用装置的结构示意图;
图8是本发明实施例的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例的一种远程服务调用方法的流程示意图,本发明实施例的所述方法可以由用于为终端应用提供远程服务调用的调用服务器来执行。本发明实施例的所述方法包括如下步骤。
S101:在接收到终端应用的服务请求时,从在服务端应用加载的服务查询组件的可用服务分组中选取目标服务器标识,所述服务端应用用于为所述终端应用提供调用服务。
用户在打开某个终端应用需要网络服务时,由用户终端生成所述服务请求并发送给所述调用服务器,例如,用户打开终端中的浏览器应用后,发起浏览网页的请求可以作为服务请求发送给为网页浏览应用提供服务的调用服务器。
所述服务端应用被安装在调用服务器中,用于服务对应的安装在终端的终端应用,所述服务端应用可以提供诸如针对终端应用的远程服务调用的服务,例如为上述的浏览器应用提供对浏览器应用服务器的调用服务。
所述可用服务分组中记录了多个可以为所述终端应用提供服务的应用服务器的标识。所述的服务查询组件可以预先通过IOC(Inversion of Control,控制反转)或其他方式注入/加载到所述服务端应用中。可以通过配置文件或其他更高级的方式获取可用服务器,并可以服务器的标识记录到所述可用服务分组中。调用服务器可以将该组件的可用服务分组的相关信息加载在进程内存空间中,在检测到远程服务调用请求后,即可快速地从服务查询组件中的可用服务分组中选取目标服务器标识。
所述服务查询组件中的可用服务分组包括一个或者多个可为发起所述远程服务调用请求的终端应用提供服务的可用服务器的标识,具体可以为可用服务器的IP地址、端口号等信息。所述选取的目标服务器标识为可用的第一服务器的IP地址、端口号。
S102:根据接收到的服务请求生成远程服务调用请求,并将所述远程服务调用请求发送给所述目标服务器标识所指示的目标服务器,以调用所述目标服务器。
调用服务器在接收到服务请求后,会生成远程服务调用请求以调用相关的应用服务器为所述服务请求对应的应用提供服务。
根据选取的目标服务器的IP地址和端口号信息,调用服务器将所生成的远程服务调用请求发送给所述目标服务器,触发远程服务调用流程。
S103:若通过所述远程服务调用请求成功调用所述目标服务器,则通过所述目标服务器为所述终端应用提供服务。
在发送了调用请求后,若接收到所述目标服务器响应该调用请求返回的数据,则确定远程服务调用完成,由所述目标服务器提供所述终端应用的后续服务。其中,在发送了调用请求后,可以检测在限定的时间内是否接收到表明调用成功的数据,若是,则调用成功,否则,调用失败。
具体如图2所示,以语言通信应用为例,用户在图2所示的用户终端上点击了语言通信应用发起和某个用户的语音通信时,用户终端基于该点击操作以及对于的应用,生成服务请求(语音通信请求)发送给所述调用服务器,所述调用服务器中安装了用于为语音通信应用提供调用服务器的服务端应用(服务端语音通信应用),在对加载在所述服务端应用中的服务查询组件的可用服务分组中选取目标服务器标识,本实施例中选取了应用服务器A的标识,所述调用服务器根据服务请求生成远程服务调用请求发送给应用服务器A,若成功调用到应用服务器A,则由应用服务器A为所述语音通信应用提供语音数据处理、收发等服务。而如果未能成功调用到应用服务器A,则可以在服务查询组件的可用服务分组中重新选取目标服务器标识,本实施了中例如重新选取了应用服务器B,若成功调用到应用服务器B,则由应用服务器B为所述语音通信应用提供语音数据处理、收发等服务。
本发明实施例可以根据预置的可用服务器标识列表来发起对服务器的调用,较好地保证了远程调用服务的可用性。
再请参见图3,是本发明实施例的另一种远程服务调用方法的流程示意图,本发明实施例的所述方法可以由用于进行远程服务调用的服务器来执行。本发明实施例的所述方法包括如下步骤。
S201:在接收到终端应用的服务请求时,从在服务端应用加载的服务查询组件的可用服务分组中选取目标服务器标识,所述服务端应用用于为所述终端应用提供调用服务。
具体的,从所述服务查询组件的可用服务分组中选取目标服务器标识是基于预置的服务负载均衡策略进行选取的。具体所使用的负载均衡算法有:轮询调度,权重调度等。本申请并不对负载均衡策略进行限制,根据实际需求选取一种合适的负载均衡算法即可。
S202:根据接收到的服务请求生成远程服务调用请求,并将所述远程服务调用请求发送给所述目标服务器标识所指示的目标服务器,以调用所述目标服务器。
S203:若通过所述远程服务调用请求成功调用所述目标服务器,则通过所述目标服务器为所述终端应用提供服务。
S204:若通过所述远程服务调用请求对所述目标服务器的调用失败,则将所述目标服务器标识记录到所述服务查询组件中的不可用服务分组中。没有连接到该目标服务器标识所指示的服务器,则表明该目标服务器不可用,将其更新到不可用服务分组中。
另外,若通过所述远程服务调用请求对所述目标服务器的调用失败,本发明实施例的所述方法还可以包括:
再次从所述服务查询组件中的可用服务分组中选取出新的目标服务器标识;具体的,从所述服务查询组件的可用服务分组中选取新的目标服务器标识是基于预置的服务负载均衡策略进行选取的。根据接收到的服务请求生成远程服务调用请求发送给所述新的目标服务器标识所指示的服务器,若通过所述远程服务调用请求对新的目标服务器的调用失败,则重复执行本步骤,直至选取出能够调用成功的服务器。通过调用成功的服务器为所述终端应用提供服务。
服务查询组件中可以通过列表的形式存储了可用服务分组和不可用服务分组,以方便在接收到远程服务调用请求时能够对列表进行查询。服务查询组件中的可用服务分组和不可用服务分组可以在执行上述S201至S204的任一步骤之前或之后进行更新。
具体的,请参见图4,是本发明的一种服务器标识更新的实施例流程示意图。本发明实施例的更新方式是从服务管理服务器中获取相应的可用和不可用服务器标识。具体的,本发明实施例的服务器标识更新方法包括以下步骤。
S301:从服务管理服务器中获取可用服务器的服务器标识和不可用服务器的服务器标识。
服务管理服务器为第三方服务器,向发起所述远程服务调用请求的终端应用提供服务的应用服务器需要向所述服务管理服务器实时或定时上报注册消息,该注册消息用于表明对应的发送注册消息的服务器为可用的状态,如果服务管理服务器在一定的时间段内没有接收到某个应用服务器的注册消息,则可以确定该应用服务器为不可用的状态。
具体的,所述服务管理服务器根据对应服务器上报的注册消息确定出的服务器标识。即服务管理服务器接收到的注册消息,则将发送该注册消息的应用服务器作为可用服务器,将其IP地址、端口号等信息作为标识记录为可用服务器标识。而如果以前在服务管理服务器中已注册过,但在一段时间内未能接收到新的注册消息,则将对应的应用服务器记录为不可用服务器。
进一步可选地,所述服务管理服务器可以对为所述终端应用提供服务的应用服务器进行可用性检测,根据检测结果确定出可用服务器的服务器标识。所述服务管理服务器的可用性检测包括:定时向多个已知的应用服务器发送消息(保活数据包),如果能够正常发送消息且接收到应用服务器的响应消息,则认为应用服务器为可用,如果不能正常发送消息或不能接收到响应消息,则认为应用服务器不可用。在可用性检测结束后,根据检测结果记录可用服务器标识和不可用服务器标识。
S302:将获取到的可用服务器标识更新到所述服务查询组件中的可用服务分组中。
S303:将获取到的不可用服务器标识更新到所述服务查询组件中的不可用服务分组中。
需要说明的是,服务管理服务器可以单纯地记录可用服务器标识,为用户终端的终端应用提供服务的其他未被记录的服务器则为不可用服务器,也就是说在更新服务查询组件时,仅更新可用服务分组内的可用服务器标识。服务查询组件也可以仅更新可用服务分组。
通过第三方的管理服务器来完成可用服务器和不可用服务器的标识更新可以较好地保证可用服务器和不可用服务器的标识的完整性,且不会给客户端带来负担。
再请参见图5,是本发明实施例的另一种服务器标识更新的实施例流程示意图。本发明实施例是由调用服务器与为终端应用提供服务的各个服务器进行通信来实现可用和不可用服务器标识的更新。具体的,本发明实施例的服务器标识更新方法包括以下步骤。
S401:根据预置的更新间隔向为终端应用提供服务的应用服务器发送检测消息,所述检测消息用于检测所述服务器是否可用。
所述检测消息为一个保活数据包或者心跳数据包,该检测消息用于触发对应的应用服务器返回响应消息,如果接收到响应所述检测消息的响应消息,则认为对应的应用服务器可用,否则为不可用。
S402:如果接收到所述应用服务器根据所述检测消息返回的响应消息,则确定所述应用服务器为可用,更新所述可用服务分组中的服务器标识。
S403:如果没有接收到所述应用服务器根据所述检测消息返回的响应消息,则确定所述应用服务器不可用,更新所述不可用服务分组中的服务器标识。
需要说明的是,服务查询组件可以仅更新可用服务分组,当没有接收到响应消息时,不对未发出响应消息的服务器作记录即可,或者如果对应的服务器在发送检测消息之前在可用服务分组中,则将该对应的没有返回响应消息的服务器从可用服务分组中移除。
由调用服务器直接发起对为终端应用提供服务的服务器的可用或不可用检测,可以较为直接、快捷地确定出可用或不可用的服务器,完成可用或不可用的服务器标识的更新。
本发明实施例可以根据预置的可用服务器标识列表来发起到服务器的连接,相对于现有的直接尝试连接,本发明实现了远程调用服务的高可用性。并且能够及时地对可以服务列表和不可用服务列表的内容进行更新,更进一步地保证远程调用服务的可用性。
下面再对本发明实施例的一种远程服务调用装置进行详细描述。
请参见图6,是本发明实施例的一种远程服务调用装置的结构示意图,本发明实施例的所述装置可以设置在用于为终端应用提供远程服务调用的调用服务器中,具体的,本发明实施例的所述装置包括以下模块。
选取模块1,用于在接收到终端应用的服务请求时,从在服务端应用加载的服务查询组件的可用服务分组中选取目标服务器标识,所述服务端应用用于为所述终端应用提供调用服务;
处理模块2,用于根据接收到的服务请求生成远程服务调用请求,并将所述远程服务调用请求发送给所述目标服务器标识所指示的目标服务器;若通过所述远程服务调用请求成功调用所述目标服务器,则通过所述目标服务器为所述终端应用提供服务。
用户在打开某个终端应用需要网络服务时,由用户终端生成所述服务请求并发送给所述调用服务器的选取模块1,例如,用户打开终端中的浏览器应用后,发起浏览网页的请求可以作为服务请求发送给为网页浏览应用提供服务的调用服务器。
所述服务端应用被安装在调用服务器中,用于服务对应的安装在终端的终端应用,所述服务端应用可以提供诸如针对终端应用的远程服务调用的服务,例如为上述的浏览器应用提供对浏览器应用服务器的调用服务。
所述可用服务分组中记录了多个可以为所述终端应用提供服务的应用服务器的标识。所述的服务查询组件可以预先通过IOC(Inversion of Control,控制反转)或其他方式注入/加载到所述服务端应用中。可以通过配置文件或其他更高级的方式获取可用服务器,并可以服务器的标识记录到所述可用服务分组中。调用服务器可以将该组件的可用服务分组的相关信息加载在进程内存空间中,所述选取模块1在检测到服务请求后,即可快速地从服务查询组件中的可用服务分组中选取目标服务器标识。
所述服务查询组件中的可用服务分组包括一个或者多个可为发起所述远程服务调用请求的终端应用提供服务的可用服务器的标识,具体可以为可用服务器的IP地址、端口号等信息。所述选取的目标服务器标识为可用的第一服务器的IP地址、端口号。
所述处理模块2在接收到服务请求后,会生成远程服务调用请求以调用相关的应用服务器为所述服务请求对应的应用提供服务。若成功调用所述目标服务器,则确定远程服务调用完成,由所述目标服务器提供所述终端应用的后续服务。
进一步可选地,所述处理模块2,还用于通过所述远程服务调用请求对所述目标服务器的调用失败,则将所述目标服务器标识记录到所述服务查询组件中的不可用服务分组中。
本发明实施例中上述提及的各个模块的具体实现可参考方法项实施例中相关步骤的描述。
本发明实施例可以根据预置的可用服务器标识列表来发起到服务器的连接,相对于现有的直接尝试连接,本发明实现了远程调用服务的高可用性。
再请参见图7,是本发明实施例的另一种远程服务调用装置的结构示意图,本发明实施例的所述装置可以设置在用于进行远程服务调用的服务器中,具体的,本发明实施例的所述装置包括上述实施例中的选取模块1和处理模块2。
进一步具体的,在本发明实施例中,所述装置还可以包括:
第一更新模块3,用于从服务管理服务器中获取可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的可用服务分组中;和/或,从服务管理服务器中获取不可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的不可用服务分组中。
其中可选地,所述从服务管理服务器中获取的可用服务器的服务器标识包括:所述服务管理服务器根据为所述终端应用提供服务的服务器上报的注册消息确定出的服务器标识;和/或,所述服务管理服务器根据对为所述终端应用提供服务的服务器进行可用性检测的检测结果确定出的可用服务器的服务器标识。
进一步具体的,在本发明实施例中,所述装置还可以包括:
第二更新模块4,用于根据预置的更新间隔向为所述终端应用提供服务的服务器发送检测消息,所述检测消息用于检测所述服务器是否可用;如果接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器为可用,更新所述可用服务分组中的服务器标识;如果没有接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器不可用,更新所述不可用服务分组中的服务器标识。
进一步具体的,在本发明实施例中,所述处理模块2,具体用于基于预置的服务负载均衡策略从所述服务查询组件的可用服务分组中选取目标服务器标识。
本发明实施例中上述提及的各个模块的具体实现可参考方法项实施例中相关步骤的描述。
本发明实施例可以根据预置的可用服务器标识列表来发起到服务器的连接,相对于现有的直接尝试连接,本发明实现了远程调用服务的高可用性。并且能够及时地对可以服务列表和不可用服务列表的内容进行更新,更进一步地保证远程调用服务的可用性。
请参见图8,是本发明实施例的一种服务器的结构示意图,该服务器可以执行远程服务调用。该服务器除了包括现有的电源、网络接口400等模块,还包括存储有服务端应用程序的存储器200,调用所述存储器200中相应的程序以完成远程服务调用功能的处理器100。处理器100与存储器200、网络接口400等模块之间通过总线300相连。具体的,所述处理器100通过调用存储器200中的相应程序用于执行如下步骤:
在接收到终端应用的服务请求时,从在服务端应用加载的服务查询组件的可用服务分组中选取目标服务器标识,所述服务端应用用于为所述终端应用提供调用服务;
根据接收到的服务请求生成远程服务调用请求,并将所述远程服务调用请求发送给所述目标服务器标识所指示的目标服务器,以调用所述目标服务器;
若通过所述远程服务调用请求成功调用所述目标服务器,则通过所述目标服务器为所述终端应用提供服务。
进一步可选地,所述处理器100还用于执行如下步骤:
若通过所述远程服务调用请求对所述目标服务器的调用失败,则将所述目标服务器标识记录到所述服务查询组件中的不可用服务分组中。
进一步可选地,所述处理器100还用于执行如下步骤:
从服务管理服务器中获取可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的可用服务分组中;和/或
从服务管理服务器中获取不可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的不可用服务分组中。
进一步可选地,所述处理器100从服务管理服务器中获取的可用服务器的服务器标识包括:所述服务管理服务器根据为所述终端应用提供服务的服务器上报的注册消息确定出的服务器标识;和/或,所述服务管理服务器根据对为所述终端应用提供服务的服务器进行可用性检测的检测结果确定出的可用服务器的服务器标识。
进一步可选地,所述处理器100还用于执行如下步骤:
根据预置的更新间隔向为所述终端应用提供服务的服务器发送检测消息,所述检测消息用于检测所述服务器是否可用;
如果接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器为可用,更新所述可用服务分组中的服务器标识;
如果没有接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器不可用,更新所述不可用服务分组中的服务器标识。
进一步可选地,所述处理器100从所述服务查询组件的可用服务分组中选取目标服务器标识是基于预置的服务负载均衡策略进行选取的。
本发明实施例中上述提及的处理器的具体实现可参考方法项实施例中相关步骤的描述。
本发明实施例可以根据预置的可用服务器标识列表来发起到服务器的连接,相对于现有的直接尝试连接,本发明实现了远程调用服务的高可用性。并且能够及时地对可以服务列表和不可用服务列表的内容进行更新,更进一步地保证远程调用服务的可用性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (13)
1.一种远程服务调用方法,其特征在于,所述方法由用于为终端应用提供远程服务调用的调用服务器来执行,包括:
在接收到终端应用的服务请求时,从在服务端应用加载的服务查询组件的可用服务分组中选取目标服务器标识,所述服务端应用用于为所述终端应用提供调用服务;所述服务端应用是安装在调用服务器中的;所述服务查询组件是预先通过控制反转IOC的方式加载到所述服务端应用中的;所述可用服务分组是通过配置文件获取的,所述可用服务分组的相关信息是加载在所述调用服务器的进程内存空间中的;所述目标服务器标识是根据预置的服务负载均衡策略选取的;
根据接收到的服务请求生成远程服务调用请求,并将所述远程服务调用请求发送给所述目标服务器标识所指示的目标服务器,以调用所述目标服务器;
检测在预设时间内是否接收到表明调用成功的数据,所述数据是所述目标服务器响应所述远程服务调用请求返回的;
若是,则调用成功,若否,则调用失败;
若通过所述远程服务调用请求成功调用所述目标服务器,则通过所述目标服务器为所述终端应用提供服务。
2.如权利要求1所述的方法,其特征在于,还包括:
若通过所述远程服务调用请求对所述目标服务器的调用失败,则将所述目标服务器标识记录到所述服务查询组件中的不可用服务分组中。
3.如权利要求1所述的方法,其特征在于,还包括:
从服务管理服务器中获取可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的可用服务分组中;和/或
从服务管理服务器中获取不可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的不可用服务分组中。
4.如权利要求3所述的方法,其特征在于,所述从服务管理服务器中获取的可用服务器的服务器标识包括:
所述服务管理服务器根据为所述终端应用提供服务的服务器上报的注册消息确定出的服务器标识;和/或,所述服务管理服务器根据对为所述终端应用提供服务的服务器进行可用性检测的检测结果确定出的可用服务器的服务器标识。
5.如权利要求1所述的方法,其特征在于,还包括:
根据预置的更新间隔向为所述终端应用提供服务的服务器发送检测消息,所述检测消息用于检测所述服务器是否可用;
如果接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器为可用,更新所述可用服务分组中的服务器标识;
如果没有接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器不可用,更新不可用服务分组中的服务器标识。
6.如权利要求1-5任一项所述的方法,其特征在于,从所述服务查询组件的可用服务分组中选取目标服务器标识是基于预置的服务负载均衡策略进行选取的。
7.一种远程服务调用装置,其特征在于,所述装置设置在用于为终端应用提供远程服务调用的调用服务器中,包括:
选取模块,用于在接收到终端应用的服务请求时,从在服务端应用加载的服务查询组件的可用服务分组中选取目标服务器标识,所述服务端应用用于为所述终端应用提供调用服务;所述服务端应用是安装在调用服务器中的;所述服务查询组件是预先通过控制反转IOC的方式加载到所述服务端应用中的;所述可用服务分组是通过配置文件获取的,所述可用服务分组的相关信息是加载在所述调用服务器的进程内存空间中的;所述目标服务器标识是根据预置的服务负载均衡策略选取的;
处理模块,用于根据接收到的服务请求生成远程服务调用请求,并将所述远程服务调用请求发送给所述目标服务器标识所指示的目标服务器;检测在预设时间内是否接收到表明调用成功的数据,所述数据是所述目标服务器响应所述远程服务调用请求返回的;若是,则调用成功,若否,则调用失败;若通过所述远程服务调用请求成功调用所述目标服务器,则通过所述目标服务器为所述终端应用提供服务。
8.如权利要求7所述的装置,其特征在于,
所述处理模块,还用于若通过所述远程服务调用请求对所述目标服务器的调用失败,则将所述目标服务器标识记录到所述服务查询组件中的不可用服务分组中。
9.如权利要求7所述的装置,其特征在于,还包括:
第一更新模块,用于从服务管理服务器中获取可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的可用服务分组中;和/或,从服务管理服务器中获取不可用服务器的服务器标识,并将获取到的服务器标识更新到所述服务查询组件中的不可用服务分组中。
10.如权利要求9所述的装置,其特征在于,所述从服务管理服务器中获取的可用服务器的服务器标识包括:所述服务管理服务器根据为所述终端应用提供服务的服务器上报的注册消息确定出的服务器标识;和/或,所述服务管理服务器根据对为所述终端应用提供服务的服务器进行可用性检测的检测结果确定出的可用服务器的服务器标识。
11.如权利要求7所述的装置,其特征在于,还包括:
第二更新模块,用于根据预置的更新间隔向为所述终端应用提供服务的服务器发送检测消息,所述检测消息用于检测所述服务器是否可用;如果接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器为可用,更新所述可用服务分组中的服务器标识;如果没有接收到所述服务器根据所述检测消息返回的响应消息,则确定所述服务器不可用,更新不可用服务分组中的服务器标识。
12.如权利要求7至11任一项所述的装置,其特征在于,
所述处理模块,具体用于基于预置的服务负载均衡策略从所述服务查询组件的可用服务分组中选取目标服务器标识。
13.一种服务器,其特征在于,所述服务器包括如权利要求7至12任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510970916.4A CN105553993B (zh) | 2015-12-18 | 2015-12-18 | 一种远程服务调用方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510970916.4A CN105553993B (zh) | 2015-12-18 | 2015-12-18 | 一种远程服务调用方法、装置及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105553993A CN105553993A (zh) | 2016-05-04 |
CN105553993B true CN105553993B (zh) | 2019-09-27 |
Family
ID=55832928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510970916.4A Active CN105553993B (zh) | 2015-12-18 | 2015-12-18 | 一种远程服务调用方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105553993B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645476B (zh) * | 2016-07-22 | 2021-06-11 | 上海优扬新媒信息技术有限公司 | 请求处理方法和装置 |
CN106790092B (zh) * | 2016-12-23 | 2020-06-19 | 北京奇艺世纪科技有限公司 | 远程过程调用服务端控制系统及方法 |
CN107094171A (zh) * | 2017-03-30 | 2017-08-25 | 聚好看科技股份有限公司 | 负载均衡方法及装置 |
CN107995062B (zh) * | 2017-12-05 | 2021-03-23 | 公安部交通管理科学研究所 | 基于rpc的交管综合平台异地业务实时处理方法和系统 |
CN107979648A (zh) * | 2017-12-12 | 2018-05-01 | 苏州蜗牛数字科技股份有限公司 | 一种服务器远程控制系统及方法 |
CN109936639A (zh) * | 2017-12-15 | 2019-06-25 | 中兴通讯股份有限公司 | 一种服务调用方法及服务器 |
CN107948215A (zh) * | 2018-01-17 | 2018-04-20 | 广州汇智通信技术有限公司 | 一种基于udp通信的远程调用方法和装置 |
CN108667934A (zh) * | 2018-05-11 | 2018-10-16 | 中国平安人寿保险股份有限公司 | 信息处理方法、装置、电子设备及存储介质 |
CN110798411A (zh) * | 2018-08-03 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 服务调用方法、流量调度方法及装置 |
CN109189856B (zh) * | 2018-08-15 | 2021-09-28 | 中国联合网络通信集团有限公司 | 分布式数据库服务管理方法、装置、服务器及存储介质 |
CN110120897A (zh) * | 2019-04-22 | 2019-08-13 | 国家计算机网络与信息安全管理中心 | 链路探测方法、装置、电子设备及机器可读存储介质 |
CN113765870B (zh) * | 2020-09-01 | 2023-09-05 | 北京沃东天骏信息技术有限公司 | 一种远程服务调用方法、装置和系统 |
CN113765774B (zh) * | 2020-11-16 | 2023-05-02 | 西安京迅递供应链科技有限公司 | 消息实时同步方法、装置、电子设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7240096B1 (en) * | 2002-09-30 | 2007-07-03 | Bell South Intellectual Property Corp. | System and method for providing service technicians access to dispatch information |
CN102325186A (zh) * | 2011-09-14 | 2012-01-18 | 山东中创软件工程股份有限公司 | 远程服务调用方法及系统 |
CN102438048A (zh) * | 2011-12-15 | 2012-05-02 | 北京新媒传信科技有限公司 | 一种互联网中远程服务调用的方法和系统 |
CN103346910A (zh) * | 2013-06-25 | 2013-10-09 | 曙光信息产业(北京)有限公司 | 服务器可用状态的管理方法和装置 |
CN103905551A (zh) * | 2014-04-02 | 2014-07-02 | 北京中交兴路车联网科技有限公司 | 一种服务调用方法及装置 |
CN104780224A (zh) * | 2015-04-30 | 2015-07-15 | 北京奇艺世纪科技有限公司 | 一种远程服务调用方法及装置 |
-
2015
- 2015-12-18 CN CN201510970916.4A patent/CN105553993B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7240096B1 (en) * | 2002-09-30 | 2007-07-03 | Bell South Intellectual Property Corp. | System and method for providing service technicians access to dispatch information |
CN102325186A (zh) * | 2011-09-14 | 2012-01-18 | 山东中创软件工程股份有限公司 | 远程服务调用方法及系统 |
CN102438048A (zh) * | 2011-12-15 | 2012-05-02 | 北京新媒传信科技有限公司 | 一种互联网中远程服务调用的方法和系统 |
CN103346910A (zh) * | 2013-06-25 | 2013-10-09 | 曙光信息产业(北京)有限公司 | 服务器可用状态的管理方法和装置 |
CN103905551A (zh) * | 2014-04-02 | 2014-07-02 | 北京中交兴路车联网科技有限公司 | 一种服务调用方法及装置 |
CN104780224A (zh) * | 2015-04-30 | 2015-07-15 | 北京奇艺世纪科技有限公司 | 一种远程服务调用方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105553993A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105553993B (zh) | 一种远程服务调用方法、装置及服务器 | |
CN106126402B (zh) | 加速器异常的处理方法及装置 | |
CN111555913A (zh) | 基于虚拟化对真实网络环境模拟的仿真方法、系统、电子设备及存储介质 | |
CN109639782A (zh) | 消息发送平台、方法 | |
CN103067439B (zh) | 负载均衡方法和系统 | |
CN105897947B (zh) | 移动终端的网络访问方法和装置 | |
CN109391649A (zh) | 页面加载的方法、装置和系统 | |
CN105630587A (zh) | 应用程序数据在终端之间迁移的方法、装置及系统 | |
CN104601702B (zh) | 集群远程过程调用方法及系统 | |
US9559915B2 (en) | System and method for dynamically testing networked target systems | |
CN108737582A (zh) | 域名解析的方法及装置 | |
CN106445473A (zh) | 一种容器部署方法及装置 | |
CN107948215A (zh) | 一种基于udp通信的远程调用方法和装置 | |
CN108156274A (zh) | 一种vpn网络中使设备获得域名解析结果的方法及装置 | |
CN109547524A (zh) | 基于物理网的用户行为存储方法、装置、设备及存储介质 | |
CN109150745A (zh) | 一种报文处理方法及装置 | |
CN109587272A (zh) | 一种微服务的优化方法、装置和电子设备 | |
CN110377419A (zh) | 一种服务器调用方法、装置和电子设备 | |
CN105636030B (zh) | 分享接入点的方法及装置 | |
US20140101285A1 (en) | Method, device, and system for obtaining address of sip registration server | |
CN107784009A (zh) | 数据查询、数据查询处理方法及装置 | |
CN116366652A (zh) | 分布式应用运维方法、系统、装置、服务器及网关设备 | |
CN104754601B (zh) | 一种隐藏节点检测方法、网络节点及服务器 | |
CN108366102A (zh) | 一种基于Consul的服务发现方法、装置及电子设备 | |
CN112398857A (zh) | 防火墙测试方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |