一种分布式环境下的服务寻址方法及装置制造方法及图纸

技术编号:14801501 阅读:147 留言:0更新日期:2017-03-14 22:35
本申请实施例提供了一种分布式环境下的服务寻址方法及装置,其中所述方法包括:生成服务查询请求,所述服务查询请求包括查询条件;获取与所述查询条件对应的目标服务的第一服务器地址列表;获取故障服务器地址列表;在所述第一服务器地址列表中删除所述故障服务器地址列表,得到第二服务器地址列表;从所述第二服务器地址列表中选择目标服务器地址;向所述目标服务器地址发起对所述目标服务的调用。本申请可以提高服务调用的效率。

【技术实现步骤摘要】

本申请涉及数据寻址
,特别是涉及一种分布式环境下的服务寻址方法和一种分布式环境下的服务寻址装置。
技术介绍
随着信息化产业的不断发展,不同种类的操作系统、应用软件、系统软件和应用基础结构(applicationinfrastructure)交融得越来越多,使得SOA(Service-OrientedArchitecture,面向服务的体系架构)技术应运而生并得到广泛应用。SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。其中,对外提供服务的应用成为服务提供者,使用其他应用提供的服务的应用称为服务消费者。在分布式环境下,服务消费者与服务提供者的数量众多,例如一些以客户为中心的网上购物商城,目前已经拥有上千个服务提供者,服务消费者的数量则更多,在这种情况下,就形成了一个集群环境。随着系统中服务的不断增加,整个系统中服务的依赖关系逐渐呈现复杂的网状图现象,在这种情况下,对统一的服务寻址场所的需求就非常明显,因此产生了服务注册中心,通常,服务提供者需要将其提供的服务地址信息以及名称、接口、属性等其他元信息统一注册到服务注册中心,然后由服务注册中心将各服务提供者的服务信息以列表或其他形式提供给服务消费者,则服务消费者就可以根据此服务信息列表找到需要的服务提供者,进而请求该服务提供者提供相应的服务。但是,在集群环境下,服务消费者通过服务注册中心获得的目标服务地址可能有多个,当局部服务器发生故障无法正常提供服务时,落到这些服务器的请求将会执行失败。在高并发的情况下,如果服务消费者不能够及时识别故障服务器,并采取有效隔离手段,将会出现大量的服务调用失败,影响系统可用率。随着集群规模的不断增大,故障出现越大,更加需要针对故障的有效隔离方法。目前支持故障隔离功能的服务寻址策略主要有:基于负载的寻址策略:选择负载较低的服务器,但是这种寻址策略需要每次进行服务调用时感知服务提供者一端的负载情况,增加服务提供者对自身负载实时监控的负担,并且需要服务消费者实时获取该负载数据,从而占用大量的计算和网络传输资源。基于并发的寻址策略:选择并发较小的服务器,但是这种寻址策略需要服务消费者每次进行服务调用时实时统计对各服务提供者的并发调用量,同样需要大量的计算。基于权重的寻址策略:选择权重较大(或较小,视具体算法而定)的服务器,是一种综合的方式,根据一定的公式,计算权重,也需要针对每次调用进行计算。综上,以上寻址策略针对每次服务调用均需要进行相应的信息采集和计算,特别是当高并发以及所调用的服务数量和服务提供者地址数量比较多的时候,计算的代价是很高的。在调用成功率比较高的环境下,很多计算其实是没有必要的。因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提供一种分布式环境下的服务寻址机制,用以提高服务调用的效率。
技术实现思路
本申请实施例所要解决的技术问题是提供一种分布式环境下的服务寻址方法,用以提高服务调用的效率。相应的,本申请实施例还提供了一种分布式环境下的服务寻址装置,用以保证上述方法的实现及应用。为了解决上述问题,本申请公开了一种分布式环境下的服务寻址方法,所述方法包括:生成服务查询请求,所述服务查询请求包括查询条件;获取与所述查询条件对应的目标服务的第一服务器地址列表;获取故障服务器地址列表;在所述第一服务器地址列表中删除所述故障服务器地址列表,得到第二服务器地址列表;从所述第二服务器地址列表中选择目标服务器地址;向所述目标服务器地址发起对所述目标服务的调用。优选地,在所述获取故障服务器地址列表的步骤之前,还包括:预置故障数据库,所述故障数据库中存储一条或多条故障服务器地址与对应的故障次数统计值的关联关系。优选地,所述获取故障服务器地址列表的步骤包括:从所述故障数据库中获取与所述第一服务器地址列表匹配的故障服务器地址;若所述匹配的故障服务器地址有多条,则按照所述故障次数统计值将所述多条故障服务器地址排序;将排序在前的预设数量的故障服务器地址组织成故障服务器地址列表。优选地,所述方法还包括:若对所述目标服务的调用失败,则判定所述目标服务器地址为故障服务器地址;判断所述故障数据库中是否存在所述故障服务器地址;若是,则对所述故障服务器地址对应的故障次数统计值增加预设阈值;若否,则将所述故障服务器地址添加到故障数据库,并设置对应的故障次数统计值为预设的初始值;更新所述故障服务器地址列表;针对所述更新后的故障服务器地址列表,返回所述在所述第一服务器地址列表中删除所述故障服务器地址列表,得到第二服务器地址列表的步骤。优选地,所述对所述目标服务的调用失败的情形至少包括如下情形的一种:响应超时、目标服务器线程池繁忙。优选地,所述方法还包括:对所述故障数据库中的故障服务器地址分别设置定时器;当所述定时器到时时,将对应的故障服务器地址所对应的故障次数统计值清零。优选地,所述获取故障服务器地址列表的步骤包括:生成故障信息获取请求,其中,所述故障信息获取请求用于获取预设时间周期内集群内出现过故障的服务器的信息;将所述故障信息获取请求发送至远程服务器,其中,所述远程服务器中记录有集群内出现故障的故障服务器的地址信息;接收远程服务器针对所述故障信息获取请求返回的故障服务器地址列表。优选地,所述从所述第二服务器地址列表中选择目标服务器地址的步骤为:从所述第二服务器地址列表中随机选择目标服务器地址。本申请还提供了一种分布式环境下的服务寻址装置,所述装置包括:请求生成模块,用于生成服务查询请求,所述服务查询请求包括查询条件;第一地址获取模块,用于获取与所述查询条件对应的目标服务的第一服务器地址列表;故障地址获取模块,用于获取故障服务器地址列表;第二地址获取模块,用于在所述第一服务器地址列表中删除所述故障服务器地址列表,得到第二服务器地址列表;地址选择模块,用于从所述第二服务器地址列表中选择目标服务器地址;服务调用模块,用于向所述目标服务器地址发起对所述目标服务的调用。优选地,所述装置还包括:数据库预置模块,用于预置故障数据库,所述故障数据库中存储一条或多条故障服务器地址与对应的故障次数统计值的关联关系。优本文档来自技高网
...

【技术保护点】
一种分布式环境下的服务寻址方法,其特征在于,所述方法包括:生成服务查询请求,所述服务查询请求包括查询条件;获取与所述查询条件对应的目标服务的第一服务器地址列表;获取故障服务器地址列表;在所述第一服务器地址列表中删除所述故障服务器地址列表,得到第二服务器地址列表;从所述第二服务器地址列表中选择目标服务器地址;向所述目标服务器地址发起对所述目标服务的调用。

【技术特征摘要】
1.一种分布式环境下的服务寻址方法,其特征在于,所述方法包括:
生成服务查询请求,所述服务查询请求包括查询条件;
获取与所述查询条件对应的目标服务的第一服务器地址列表;
获取故障服务器地址列表;
在所述第一服务器地址列表中删除所述故障服务器地址列表,得到
第二服务器地址列表;
从所述第二服务器地址列表中选择目标服务器地址;
向所述目标服务器地址发起对所述目标服务的调用。
2.根据权利要求1所述的方法,其特征在于,在所述获取故障服务
器地址列表的步骤之前,还包括:
预置故障数据库,所述故障数据库中存储一条或多条故障服务器地
址与对应的故障次数统计值的关联关系。
3.根据权利要求2所述的方法,其特征在于,所述获取故障服务器
地址列表的步骤包括:
从所述故障数据库中获取与所述第一服务器地址列表匹配的故障服
务器地址;
若所述匹配的故障服务器地址有多条,则按照所述故障次数统计值
将所述多条故障服务器地址排序;
将排序在前的预设数量的故障服务器地址组织成故障服务器地址列
表。
4.根据权利要求3所述的方法,其特征在于,还包括:
若对所述目标服务的调用失败,则判定所述目标服务器地址为故障
服务器地址;
判断所述故障数据库中是否存在所述故障服务器地址;
若是,则对所述故障服务器地址对应的故障次数统计值增加预设阈
值;
若否,则将所述故障服务器地址添加到故障数据库,并设置对应的
故障次数统计值为预设的初始值;
更新所述故障服务器地址列表;
针对所述更新后的故障服务器地址列表,返回所述在所述第一服务
器地址列表中删除所述故障服务器地址列表,得到第二服务器地址列表
的步骤。
5.根据权利要求4所述的方法,其特征在于,所述对所述目标服务
的调用失败的情形至少包括如下情形的一种:响应超时、目标服务器线
程池繁忙。
6.根据权利要求2所述的方法,其特征在于,还包括:
对所述故障数据库中的故障服务器地址分别设置定时器;
当所述定时器到时时,将对应的故障服务器地址所对应的故障次数
统计值清零。
7.根据权利要求1所述的方法,其特征在于,所述获取故障服务器
地址列表的步骤包括:
生成故障信息获取请求,其中,所述故障信息获取请求用于获取预
设时间周期内集群内出现过故障的服务器的信息;
将所述故障信息获取请求发送至远程服务器,其中,所述远程服务
器中记录有集群内出现故障的故障服务器的地址信息;
接收远程服务器针对所述故障信息获取请求返回的故障服务器地址
列表。
8.根据权利要求1所述的方法,其特征在于,所述从所述第二服务
器地址列表中选择目标服务器地址的步骤为:
从所述第二服务器地址列表中随机选择目标服务器地址。
9.一种分布式环境下的服务寻址装置,其特征在于,所述装置包括:
请求生成模块,用于生成服务查询请求,所述服务查询请求包括查
询条件;
第一地址获取模块,用于获取与所述查询条件对应的目标服务的第<...

【专利技术属性】
技术研发人员:蒋涛
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1