一种远程调用方法与设备的制造方法

文档序号:9600877阅读:266来源:国知局
一种远程调用方法与设备的制造方法
【技术领域】
[0001] 本申请涉及计算机领域,尤其涉及一种远程调用技术。
【背景技术】
[0002] 当应用从集中式的单机系统走向跨网络的分布式系统的服务化过程中,关键问题 之一便是如何确定并调用远程服务。目前主要通过在调用客户端和服务提供端之间架设透 明带负载均衡服务器(如硬件F5或者软件Linux虚拟服务器LVS、反向代理HAProxy等等) 来透明地代理调用客户端的远程服务调用请求,并确定对应的服务提供端来响应该请求。
[0003] 然而,上述方案中,所有的请求/响应都经过负载均衡服务器,随着业务的增大, 负载均衡的压力会增大,该负载均衡服务器很可能会成为故障单点,这将导致大量远程调 用无法完成,从而影响系统服务功能实现及用户使用体验。

【发明内容】

[0004] 本申请的目的是提供一种远程调用方法与设备。
[0005] 根据本申请的一个方面,提供了一种远程调用方法,包括:
[0006] 获取或更新一个或多个可用服务的服务地址信息;
[0007] 根据服务调用请求及所述服务地址信息确定所述服务调用请求关于目标可用服 务的路由访问信息;
[0008] 根据所述路由访问信息调用所述目标可用服务。
[0009] 根据本申请的另一方面,还提供了一种远程调用设备,包括:
[0010] 第一装置,用于获取或更新一个或多个可用服务的服务地址信息;
[0011] 第二装置,用于根据服务调用请求及所述服务地址信息确定所述服务调用请求关 于目标可用服务的路由访问信息;
[0012] 第三装置,用于根据所述路由访问信息调用所述目标可用服务。
[0013] 与现有技术相比,本申请通过获取或更新一个或多个可用服务的服务地址信息, 根据服务调用请求及服务地址信息确定所述服务调用请求关于目标可用服务的路由访问 信息,进而根据该路由访问信息调用该目标可用服务。本申请克服了须经由中间服务器 (如负载均衡服务器)等第三方设备来调度服务调用请求从而实现负载均衡的技术偏见, 本申请摒弃了第三方设备,而是通过服务请求端直接确定关于目标服务的路由访问信息来 实现负载均衡;而且,通过确定目标可用服务的路由访问信息来直接调用该目标可用服务, 不需要绕经中转的负载均衡服务器,不仅避免了负载均衡服务器所导致的单点故障,也减 少了网络中转、提高了服务响应性能。
[0014] 进一步地,本申请还可以实现更为精确的远程调用负载均衡,例如,本申请可以根 据接口、方法以及参数来从可用的地址列表中来过滤选择出特定的地址列表进行调用;也 可以基于路由对某些机器进行权重选择;另外对于一些高并发网站,在全国有多个机房,跨 机房的服务调用是常见的,针对多机房通过一定策略来避免跨机房的延迟。
【附图说明】
[0015] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它 特征、目的和优点将会变得更明显:
[0016] 图1示出根据本申请一个方面的一种远程调用设备的设备示意图;
[0017] 图2示出根据本申请另一个方面的一种远程调用方法的方法流程图。
[0018] 附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0019] 下面结合附图对本申请作进一步详细描述。
[0020] 在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个 处理器(CPU)、输入/输出接口、网络接口和内存。
[0021] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/ 或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质 的示例。
[0022] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法 或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。 计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、 动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电 可擦除可编程只读存储器(EEPR0M)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性 存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的 界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信 号和载波。
[0023] 图1示出根据本申请一个方面的一种远程调用设备的设备示意图。远程调用设备 1包括第一装置101、第二装置102和第三装置103。
[0024] 其中,第一装置101获取一个或多个可用服务的服务地址信息。具体地,第一装置 101定期或应事件触发地,从远程调用框架所对应的注册服务器或地址服务器,获取一个或 多个可用服务的服务地址信息,或者仅获取其中更新后的一个或多个可用服务的服务地址 信息。例如,该第一装置101定期从远程调用框架所对应的注册服务器,下载注册服务的服 务地址信息。
[0025] 本领域技术人员应能理解,上述获取或更新服务地址信息的方式仅为举例,其他 现有的或今后可能出现的获取或更新服务地址信息的方式如可适用于本申请,也应包含在 本申请保护范围以内,并在此以引用方式包含于此。
[0026] 第二装置102根据服务调用请求及所述服务地址信息确定所述服务调用请求关 于目标可用服务的路由访问信息。具体地,第二装置102确定路由访问信息的方式包括但 不限于:
[0027] 1)第二装置102首先根据该服务调用请求及第一装置101获取或更新的一个或多 个可用服务的服务地址信息,确定目标可用服务,其中,该目标可用服务与该服务调用请求 相匹配;随后,第二装置102再根据该目标可用服务的服务地址信息,路由确定该服务调用 请求关于该目标可用服务的路由访问信息。
[0028] 2)第二装置102首先根据该服务调用请求及第一装置101获取或更新的一个或多 个可用服务的服务地址信息,确定若干个候选路由访问信息;随后,该第二装置102再根据 服务调用请求,或进一步结合路由规则,从该若干个候选路由访问信息中筛选出目标可用 服务,进而,将该目标可用服务所对应的候选路由访问信息作为该路由访问信息。
[0029] 本领域技术人员应能理解,上述确定路由访问信息的方式仅为举例,其他现有的 或今后可能出现的确定路由访问信息的方式如可适用于本申请,也应包含在本申请保护范 围以内,并在此以引用方式包含于此。
[0030] 第三装置103根据所述路由访问信息调用所述目标可用服务。具体地,第三装置 103根据第二装置102所确定的路由访问信息,直接远程调用该目标可用服务;或者,该第 三装置103根据该路由访问信息,将该服务调用请求发送至该目标可用服务,并由该目标 可用服务处理该服务调用请求。
[0031] 在此,若该服务调用请求包含服务调用参数,则该第三装置103可依据该(等)服 务调用参数调用该目标可用服务。
[0032] 本领域技术人员应能理解,上述调用目标可用服务的方式仅为举例,其他现有的 或今后可能出现的调用目标可用服务的方式如可适用于本申请,也应包含在本申请保护范 围以内,并在此以引用方式包含于此。
[0033] 在此,远程调用包括但不限于基于如HSF、RPC或RMI等。在此,该远程调用方法工 作于调用远程服务的客户端。
[0034] HSF(High-SpeedServiceFramework,高速服务框架),旨在为业务应用提供一个 分布式的服务框架,HSF从分布式应用层面以及统一的发布/调用方式层面为大家提供支 持,从而可以很容易的开发分布式的应用以及提供或使用公用功能模块,而不用考虑分布 式领域中的各种细节技术,例如远程通讯、性能损耗、调用的透明化、同步/异步调用方式 的实现等等问题。
[0035] RPC(RemoteProcedureCallProtocol,远程过程调用协议),是一种通过网络从 远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
[0036] RMI(RemoteMethodInvocation,远程方法调用),是Java编程语言里,一种用于 实现远程过程调用的应用程序编程接口。其使客户机上运行的程序可以调用远程服务器上 的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI的宗旨在于 尽可能简化远程接口对象的使用。
[0037] 优选地,远程调用设备1的各个装置之间是持续不断工作的。具体地,第一装置 101获取或更新一个或多个可用服务的服务地址信息;第二装置102根据服务调用请求及 所述一个或多个可用服务的服务地址信息确定所述服务调用请求关于目标可用服务的路 由访问信息;第三装置103根据所述路由访问信息调用所述目标可用服务。在此,本领域技 术人员应理解"持续"是指远程调用设备1的各装置分别按照设定的或实时调整的工作模 式要求,获取或更新服
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1