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

文档序号:9600877阅读:来源:国知局
服务的服务地址的下一跳,即对应的路由访问信息。 [0110] 在此,服务调用请求通常包括用于匹配目标可用服务的相关信息,例如,服务调用 请求为请求调用日志查询服务。
[0111] 优选地,根据服务调用请求及所述一个或多个可用服务的服务地址信息确定目标 可用服务包括:
[0112] 根据服务调用请求及所述一个或多个可用服务的服务地址信息,并结合对应的路 由规则,确定所述目标可用服务。
[0113] 具体地,在步骤S202中,远程调用设备1根据服务调用请求,及在步骤S201中所 获取或更新的一个或多个可用服务的服务地址信息,确定若干个候选可用服务,其中,该候 选可用服务与该服务调用请求相匹配;随后,在步骤S202中,远程调用设备1结合对应的路 由规则,从该若干个与该服务调用请求相匹配的候选可用服务中筛选出目标可用服务。
[0114] 优选地,当经过路由规则筛选后仍存在多个候选可用服务时,在步骤S202中,远 程调用设备1随机选择一个候选可用服务,作为目标可用服务。
[0115] 随后,在步骤S202中,远程调用设备1根据该确定的目标可用服务的服务地址信 息,路由确定该服务调用请求关于该目标可用服务的路由访问信息。
[0116] 更优选地,所述路由规则包括以下至少任一项:
[0117] 基于服务接口的路由规则;
[0118] 基于服务方法的路由规则;
[0119] 基于服务的参数值的路由规则;
[0120] 基于服务所属机房所对应的路由规则。
[0121] 具体地,路由规则包括基于服务接口的路由规则。在此,基于服务接口的路由规则 是服务调用按照接口路由到固定的几台机器或者几组机器。例如,用户想对服务A做接口 级别路由控制,A服务的地址列表为:192. 168. 1. 2, 192. 168. 1. 3。控制所有服务访问A服 务时,全部路由到192. 168. 1. 3,只需要向文件配置中心注册如下内容:
[0124] 其中的IP地址支持正则表达式(*,?),例如可以配置成192. 168. 1. *。在此,如 果只想匹配某一个IP,配置时需要在此IP后面加上〃 :*〃,如上例中〃 192. 168. 1. 3: *〃中的 〃:*〃部分是必须的。如果IP地址的末尾本来就有通配符〃*〃,如192. 168. 1.*,则无需再 添加〃 :*〃。
[0125] 路由规则还包括基于服务方法的路由规则。在此,基于服务方法的路由规则是根 据服务调用请求所要调用的服务方法来筛选候选可用服务,路由到固定的几台或者几组机 器。与上述基于服务接口的路由规则一样,如用户需要读写分离,现有2台机器提供同一个 服务的读和写方法,用户想1台机器用做读服务,1台机器用做写服务,只需要向文件配置 中心注册如下内容:
[0128] 路由规则还包括基于服务的参数值的路由规则。在此,基于服务的参数值的路由 规则是服务调用按照参数传入的实际值,路由到固定的几台机器或者几组机器。用户想对 服务A做参数级别路由控制,A服务的地址列表为:192. 168. 1. 2,192. 168. 1. 3。控制所有 服务访问A服务时,如果方法中某个参数大于一定规则时(例如,当参数传入整数大于10 到某几台机器,小于10则到另几台机器),路由到不同组机器上。只需要向文件注册中心注 册如下内容:
[0129]
[0131] 路由规则还包括基于服务所属机房所对应的路由规则。优选地,当满足服务可用 比例阈值时,启用本地机房优先路由规则。由于跨机房的代价一般比较大,因此,可以优先 启用本地机房。然而,由于有些服务在机房的部署并不均衡,甚至在某些机房根本没部署, 因此,不能以一概全的禁用跨机房调用,跨机房调用在某些条件下是需要的。可以由灵活的 本地机房规则来配合进行权衡的判断。在此,服务可用比例阈值用于判断是否优先启用本 地机房,其值可以是系统预置的,也可根据实际情况进行调整。该服务可用比例阈值是该路 由规则中指定了对某个服务,是否启用本地机房优先调用的策略,以及启用策略的情况下, 策略真正能够生效的阀值。其定义如下:
[0132]<flowControl>
[0133] <localPreferredSwitch>on</localPreferredSwitch>
[0134] 〈threshold〉。· 2〈/threshold>
[0135]</flowControl>
[0136] 以上规则表示,对所配置的服务启用本地机房优先调用的策略,规则生效阀值为 0· 2。
[0137] 规则属性:
[0138]localPreferredSwitch:on|off
[0139]threshold:float值
[0140]exclusions:如果期望该规则只对一部分机器生效,可以使用这一属性配置需要 排除的IP,如:172. 24. *,将表示该规则不会应用于所有172. 24开头的IP。
[0141] 该服务可用比例阈值的计算方法为:服务可用比例=本地机房可用机器数量/所 有服务机器数量。
[0142] 当服务可用比例大于等于该服务可用比例阈值时,启用本地机房优先策略。当服 务可用比例小于该服务可用比例阈值时,本地机房优先策略关闭,服务仍然采用随机调用 的方式。
[0143] 本领域技术人员应能理解,上述路由规则仅为举例,其他现有的或今后可能出现 的路由规则如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含 于此。
[0144] 优选地,根据服务调用请求及所述一个或多个可用服务的服务地址信息,并结合 对应的路由规则,确定所述目标可用服务包括:
[0145] 根据服务调用请求及所述一个或多个可用服务的服务地址信息,并结合对应的路 由规则及所述路由规则的权重信息,确定所述目标可用服务。
[0146] 具体地,在步骤S202中,远程调用设备1结合对应的路由规则,确定目标可用服务 之时,还可考虑路由规则的权重信息。例如,在步骤S202中,远程调用设备1根据服务调用 请求,及在步骤S201中所获取或更新的一个或多个可用服务的服务地址信息,并结合对应 的路由规则及该路由规则的权重信息,确定该目标可用服务。
[0147] 在此,由于路由规则中增加权重。用户有时候希望在路由规则中里面再增加权重, 这时只要在对应的路由规则,如基于服务接口的路由规则、基于服务方法的路由规则或基 于服务的参数值的路由规则的IP地址列表里增加权重值即可。例如,在基于服务接口的路 由规则中增加权重信息,比例为1 :3。则该基于服务接口的路由规则参考如下:
[0148]
[0150] 优选地,所述对应的路由规则包括多项路由规则;其中,根据服务调用请求及所述 一个或多个可用服务的服务地址信息,并结合对应的路由规则,确定所述目标可用服务包 括:
[0151] 根据服务调用请求及所述一个或多个可用服务的服务地址信息,并结合对应的路 由规则及所述路由规则的粒度信息,确定所述目标可用服务。
[0152] 具体地,在步骤S202中,远程调用设备1结合对应的路由规则,确定目标可用服务 时,若该路由规则包括多项路由规则,则在步骤S202中,远程调用设备1还需结合该多项路 由规则的粒度信息,确定该目标可用服务。例如,在步骤S202中,远程调用设备1根据服务 调用请求,及在步骤S201中所获取或更新的一个或多个可用服务的服务地址信息,并结合 对应的路由规则及该路由规则的粒度信息,确定该目标可用服务。
[0153] 例如,假设路由规则包括多项路由规则,如包括基于服务接口的路由规则、基于服 务方法的路由规则、基于服务的参数值的路由规则,则在步骤S202中,远程调用设备1按照 该多项路由规则的粒度信息,对目标可用服务进行筛选,如按照粒度信息从小到大的顺序, 对目标可用服务进行筛选,如,基于服务的参数值的路由规则的优先级最高,其次是基于服 务方法的路由规则,最后是基于服务接口的路由规则。
[0154] 在此,在调用者获取所有的可用地址列表后通过随机方法选择其中一个是最简单 直接最普遍的策略。然而,该种简单的策略无法满足复杂的需求,在某些实际场景下,需要 根据接口、方法以及参数来从可用的地址列表中来过滤选择出特定的地址列表进行调用; 也可以基于路由对某些机器进行权重选择;另外对于一些高并发网站,在全国有多个机房, 跨机房的服务调用是常见的,针对多机房需要一定策略来避免跨机房的延迟。
[0155] 因此,远程调用设备1根据服务调用请求及一个或多个可用服务的服务地址信 息,并结合对应的路由规则,确定目标可用服务;或进一步地,远程调用设备1再结合该路 由规则的权重信息,确定目标可用服务;或更进一步地,远程调用设备1再结合路由规则的 粒度信息,确定目标可用服务。
[0156] 优选地,该方法还包括步骤S204(未示出)。在步骤S204中,远程调用设备1获取 或更新所述对应的路由规则,以供确定对应的目标可用服务。具体地,在步骤S204中,远程 调用设备1定期或应事件触发地,例如从远程调用
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1