CN101674320A - 一种集群环境下的服务寻址方法及装置 - Google Patents
一种集群环境下的服务寻址方法及装置 Download PDFInfo
- Publication number
- CN101674320A CN101674320A CN200810149301A CN200810149301A CN101674320A CN 101674320 A CN101674320 A CN 101674320A CN 200810149301 A CN200810149301 A CN 200810149301A CN 200810149301 A CN200810149301 A CN 200810149301A CN 101674320 A CN101674320 A CN 101674320A
- Authority
- CN
- China
- Prior art keywords
- destination service
- service
- address
- service address
- current
- 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
Images
Landscapes
- Telephonic Communication Services (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种集群环境中的服务寻址方法,该方法包括:A:向当前服务信息列表中的目标服务地址发送调用请求,如果出现异常,进入步骤B;B:从所述当前服务信息列表中删除该目标服务地址;C:重复执行步骤A,直到调用目标服务地址成功。本发明还公开了一种集群环境中的服务寻址装置。通过本发明能够,可以任意选择当前的服务信息列表中的目标服务地址,并通过调用时的重试来避免调用服务的无故失败,因此不需要判断哪个地址健康存在,便可以保证服务调用的成功率,且实现更加方便。
Description
技术领域
本发明涉及网络技术领域,特别是涉及一种集群环境下的服务寻址方法及装置。
背景技术
在大型企业网或互联网中,SOA(Service-Oriented Architecture,面向服务的体系架构)技术得到广泛应用,SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义好的接口和契约联系起来。其中,对外提供服务的应用称为服务提供者,使用其他应用提供的服务的应用称为服务消费者。分布式的网络体系使得服务消费者和服务提供者的数量众多,例如一些以客户为中心的网上购物商城,目前已经拥有上千个服务提供者,服务消费者的数量则更多,在这样的情况下,就形成了一个集群环境。
随着系统中服务的不断增加,整个系统中服务的依赖关系逐渐呈现复杂的网状图现象,在这样的情况下,对统一的服务寻址场所的要求就非常明显了,因此产生了服务注册中心。通常,服务提供者需要将其提供的服务地址信息以及名称、接口、属性等其他元信息统一注册到服务注册中心,然后由服务注册中心将各个服务提供者的服务信息以列表或其他形式提供给服务消费者,这样服务消费者就可以根据此服务信息列表找到需要的服务提供者,进而请求该服务提供者提供相应的服务。
但是,在集群环境下,服务消费者通过服务注册中心获得的目标服务地址将会是多个,并且如果某服务提供者出现异常(如退出等),该服务提供者在服务注册中心的地址信息等不会发生变化。因此,从服务信息中心提供的服务信息列表中,无法判断各目标服务地址是否健康存在。而服务消费者一旦选择调用某个地址后,如果该地址是不存在的,将导致调用该服务失败。在这种情况下,为了保证服务调用的成功率,服务消费者需要在调用前先判断出哪个目标服务地址健康存在,而对于首次使用该服务信息列表的服务消费者来讲,这个判断的过程又是很难实现的。
因此,需要本领域技术人员迫切解决的技术问题是:如何创造性地提出支持集群环境下服务寻址的解决方案,以保证调用服务的成功率。
发明内容
有鉴于此,本发明的目的在于提供一种集群环境下的服务寻址方法及装置,以解决现有技术在集群环境下,难以保证服务调用成功率的问题。
为实现上述目的,本发明提供了如下方案:
一种集群环境中的服务寻址方法,包括:
A:向当前服务信息列表中的目标服务地址发送调用请求,如果出现异常,进入步骤B;
B:从所述当前服务信息列表中删除该目标服务地址;
C:重复执行步骤A,直到调用目标服务地址成功。
优选的,所述异常包括无法连接或响应超时。
优选的,所述步骤B之后还包括:
判断重复次数是否达到预置阈值,如果否,进入步骤C;如果是,结束流程。
优选的,还包括:
为调用成功的目标服务地址动态计算权重,并根据各目标服务地址当前权重排列各目标服务地址的优先级;
再次需要调用目标服务地址时,按照优先级顺序向目标服务地址发送调用请求。
优选的,根据目标服务地址的当前调用次数及平均响应时间,计算该目标服务地址当前权重。
一种集群环境中的服务寻址装置,包括:
通信单元,用于向当前服务信息列表中的目标服务地址发送调用请求,当出现异常时,触发所述服务信息列表管理单元;
服务信息列表管理单元,用于接收到所述通信单元的触发后,从所述当前服务信息列表中删除该目标服务地址;
控制单元,用于触发所述通信单元重复执行,直到调用目标服务地址成功。
优选的,所述异常包括无法连接或响应超时。
优选的:
所述控制单元判断重试次数是否达到预置阈值,如果否,触发所述通信单元重复执行,如果是,结束流程。
优选的,还包括:
权重计算单元,用于为调用成功的目标服务地址动态计算权重;
所述服务信息列表管理单元根据各目标服务地址当前权重排列各目标服务地址的优先级;
所述通信单元按照优先级顺序向目标服务地址发送调用请求。
优选的,所述权重计算单元包括:
统计子单元,用于统计目标服务地址的当前调用次数及平均响应时间;
计算子单元,用于根据所述统计子单元的统计结果计算该目标服务地址当前权重。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
首先,本发明调用服务信息列表中任意的目标服务地址,当某目标服务地址出现连接不上异常时,证明该目标服务地址不是健康存在的,将其从服务消费者端的目标服务信息列表中删除,同时允许服务消费者重试其他目标服务地址。这样可以保证服务消费者能够成功调用所需服务,而且以后再需要调用时,不会选择到已经出现过连接不上异常的地址。相当于在服务消费者端,可以将当前的服务信息列表中的目标服务地址都是看作是健康存在的,并通过调用时的重试来避免调用服务的无故失败,因此不需要判断哪个地址健康存在,便可以保证服务调用的成功率,实现更加方便。
其次,设定超时时间及重试次数,可以避免一次调用所耗费的时间过长以致拖累整个系统性能的情况发生。
另外,对于调用成功的目标服务地址,本发明还可以根据每个目标地址的请求次数、响应时间等来动态地确定权重,并根据权重计算出每个目标地址的排名,按照排名对服务信息列表中的各目标服务地址进行排序,调用时根据优先级顺序选择相应的目标服务地址。这样便于服务消费者获知哪些目标服务地址能够提供更加优质的服务,调用这些优先级较高的目标服务地址,能够提高调用的效率,进一步提高系统的性能。
附图说明
图1是本发明提供的集群环境中的服务寻址方法流程图;
图2是本发明提供的权重计算方法的流程图;
图3是本发明提供的装置示意图;
图4是本发明提供的另一装置示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参见图1,本发明提供了一种集群环境中的服务寻址方法,该方法包括以下步骤:
S101:向当前服务信息列表中的目标服务地址发送调用请求,如果出现异常,进入步骤S102;
S102:从所述当前服务信息列表中删除该目标服务地址;
S103:重复执行步骤S101,直到调用目标服务地址成功。
由于服务消费者需要从服务注册中心获取服务信息列表,但是在集群环境下,在调用之前难以判断哪个目标服务地址是健康存在的,从而无法得知该调用哪个目标服务地址,为解决该问题,本发明首先假设服务信息列表中所有的目标服务地址都是可用的,并通过调用时的重试来避免调用的无故失误。因此步骤S101中可以向服务信息列表中任意的目标服务地址发送调用请求,如果某目标服务地址出现异常,则可以将该目标服务地址从服务信息列表中删除,同时进行步骤S103的重试步骤,重试时,依然是从当前服务信息列表中任意选择另外一个目标服务地址,并向其发送调用服务请求,如是重复,直到调用目标服务地址成功。可见,本发明提供的方法在发送调用请求之前无需进行刻意的选择,因此简化了寻址流程,同时,利用调用时的重试保证了调用的成功率。
在实际应用中,除了有连接不上的目标服务地址(原因有网络异常或服务提供者正在重启等)外,还有某些目标服务地址的响应时间会比较长,如果选择到了这样的目标服务地址,则可能需要很长的时间才能够连接成功,这在某些系统中是不允许的。因此在本发明的优选实施例中,还可以设定超时时间(例如,可以设定为3秒),当连接某目标服务地址超过了该超时时间时,则将其看作异常,并将其从当前服务信息列表中删除,然后选择其他的目标服务地址。也就是说,本发明所述的目标服务器出现异常包括无法连接或响应超时等。
但是,即使设定了超时时间,也有可能会发生这样一种情况:某服务信息列表中有10个目标服务地址的响应时间都很长,而在前10次选择的是这10个目标服务地址,那么意味着花费了30秒的时间都还没能完成该次调用,这会拖累整个系统的性能,而且在一些系统中是不允许的。因此在实际应用中,除了设定响应时间还可以设定重试次数,当出现异常时,首先判断重试次数是否达到了某预置的阈值(通常可以设定为3),如果没有达到,则进行重复执行步骤S101的步骤,否则,抛出异常(一旦异常被抛出,就表明错误已无法挽回,也不能返回到异常发生的地方继续执行)并结束流程。
实际上,出现服务提供者无法连接(即服务提供者由于网络异常、正在重启或退出等原因而非健康存在)或连接超时的异常现象是非常少见的,因此即使某个服务提供者出现了异常,通常也只需要重试少数几次(一般不会超过3次)便可以成功。因此,不会因为设定了超时时间和重试次数而影响到系统的性能,相反的,会大大地提高系统的性能。
为了更好地提高系统的性能,最好可以选择响应时间比较短的目标服务地址。因此在本发明的优选实施例中,可以采用寻址时的权重算法为服务信息列表中的各个调用成功的目标服务地址进行排序,每次调用时可以按照优先级顺序选择相应的目标服务地址。
本发明采用的权重算法为根据每个目标服务地址的请求次数、响应时间等来动态地确定权重,具体的实现方法可以是:首先将该目标服务地址的调用次数加1,并计算当前该目标服务地址的平均响应时间,然后计算出当前该目标服务地址的调用次数排名,及该目标服务地址的平均响应时间的排名,最后根据这两个排名重新计算该目标服务地址所占的权重,并按照该最后的权重排名将该目标服务地址插入到当前服务信息列表中。
这样就相当于建立了一个动态调整各目标服务地址的优先级的过程,参见图2,该过程可以包括以下步骤:
S201:按照优先级顺序获取服务信息列表中的目标服务地址;
S202:调用该目标服务地址的服务;
S203:如果调用成功,则增加此目标服务地址的调用次数,并计算此目标服务地址的平均响应时间;
S204:根据该目标服务地址的当前调用次数排名及当前平均响应时间排名,重新计算该目标服务地址的权重,并按照权重的排名将该目标服务地址插入到当前的服务信息列表中。
与本发明所述的集群环境下的服务寻址方法相对应,本发明实施例还提供了一种集群环境下的服务寻址装置,参见图3,该装置包括:
通信单元U301,用于向当前服务信息列表中的目标服务地址发送调用请求,当出现异常时,触发服务信息列表管理单元U302;
服务信息列表管理单元U302,用于接收到通信单元U302的触发后,从所述当前服务信息列表中删除该目标服务地址;
控制单元U303,用于触发通信单元U301重复执行,直到调用目标服务地址成功。
本发明首先假设服务信息列表中的所有目标服务地址都是可用的,因此通信单元U301可以向当前服务信息列表中的任一目标服务地址发送调用请求,当调用出现异常时,触发服务信息列表管理单元U302从所述当前服务信息列表中删除该目标服务地址,同时,控制单元U303触发通信单元U301重复执行,直到该次调用成功。
在实际应用中,出现的异常包括连接不上异常,或响应超时等。其中,响应超时是指响应时间超过了预置的阈值,这样可以防止一次调用所耗费的时间过长。但如果连续调用的多个目标服务地址均响应超时,则可能还是要耗费很长时间才能调用成功,因此,在本发明的优选实施例中,还设定了重试次数阈值,当重试次数超过预置的阈值时,则抛出异常并结束流程;即,控制单元U303判断重试次数是否达到了预置的阈值,只有不超过所述阈值时,才触发通信单元U301的重复执行,否则,结束流程。这样可以避免一次调用过程耗费的时间过长,保证了整个系统的性能。
在实际应用中,为了更好地提高系统的性能,最好可以选择响应时间比较短的目标服务地址。因此在本发明的优选实施例中,可以采用寻址时的权重算法为服务信息列表中的各个调用成功的目标服务地址进行排序,每次调用时可以按照优先级顺序选择相应的目标服务地址。因此,参见图4,该装置还可以包括:
权重计算单元U404,用于为调用成功的目标服务地址动态计算权重;
服务信息列表管理单元U402可以根据各目标服务地址当前权重排列各目标服务地址的优先级;
再次需要调用目标服务地址时,通信单元U401可以按照优先级顺序向目标服务地址发送调用请求。这样可以缩短一次调用所需的时间,提高了调用的效率。
其中,权重计算单元U404可以根据目标服务地址的当前调用次数及平均响应时间,计算该目标服务地址当前权重,此时,权重计算单元U404可以包括以下子单元:
统计子单元U4041,用于统计目标服务地址的当前调用次数及平均响应时间;
计算子单元U4042,用于根据所述统计子单元的统计结果计算该目标服务地址当前权重。
以上对本发明所提供的一种集群环境中的服务寻址方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1、一种集群环境中的服务寻址方法,其特征在于,包括:
A:向当前服务信息列表中的目标服务地址发送调用请求,如果出现异常,进入步骤B;
B:从所述当前服务信息列表中删除该目标服务地址;
C:重复执行步骤A,直到调用目标服务地址成功。
2、根据权利要求1所述的方法,其特征在于,所述异常包括无法连接或响应超时。
3、根据权利要求1或2所述的方法,其特征在于,所述步骤B之后还包括:
判断重复次数是否达到预置阈值,如果否,进入步骤C;如果是,结束流程。
4、根据权利要求3所述的方法,其特征在于,还包括:
为调用成功的目标服务地址动态计算权重,并根据各目标服务地址当前权重排列各目标服务地址的优先级;
再次需要调用目标服务地址时,按照优先级顺序向目标服务地址发送调用请求。
5、根据权利要求4所述的方法,其特征在于,根据目标服务地址的当前调用次数及平均响应时间,计算该目标服务地址当前权重。
6、一种集群环境中的服务寻址装置,其特征在于,包括:
通信单元,用于向当前服务信息列表中的目标服务地址发送调用请求,当出现异常时,触发所述服务信息列表管理单元;
服务信息列表管理单元,用于接收到所述通信单元的触发后,从所述当前服务信息列表中删除该目标服务地址;
控制单元,用于触发所述通信单元重复执行,直到调用目标服务地址成功。
7、根据权利要求6所述的装置,其特征在于,所述异常包括无法连接或响应超时。
8、根据权利要求6或7所述的装置,其特征在于:
所述控制单元判断重试次数是否达到预置阈值,如果否,触发所述通信单元重复执行,如果是,结束流程。
9、根据权利要求6所述的装置,其特征在于,还包括:
权重计算单元,用于为调用成功的目标服务地址动态计算权重;
所述服务信息列表管理单元根据各目标服务地址当前权重排列各目标服务地址的优先级;
所述通信单元按照优先级顺序向目标服务地址发送调用请求。
10、根据权利要求9所述的装置,其特征在于,所述权重计算单元包括:
统计子单元,用于统计目标服务地址的当前调用次数及平均响应时间;
计算子单元,用于根据所述统计子单元的统计结果计算该目标服务地址当前权重。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810149301 CN101674320B (zh) | 2008-09-12 | 2008-09-12 | 一种集群环境下的服务寻址方法及装置 |
HK10107873.5A HK1141639A1 (en) | 2008-09-12 | 2010-08-18 | A service addressing method and device in the cluster environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810149301 CN101674320B (zh) | 2008-09-12 | 2008-09-12 | 一种集群环境下的服务寻址方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101674320A true CN101674320A (zh) | 2010-03-17 |
CN101674320B CN101674320B (zh) | 2013-06-05 |
Family
ID=42021307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810149301 Active CN101674320B (zh) | 2008-09-12 | 2008-09-12 | 一种集群环境下的服务寻址方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101674320B (zh) |
HK (1) | HK1141639A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905551A (zh) * | 2014-04-02 | 2014-07-02 | 北京中交兴路车联网科技有限公司 | 一种服务调用方法及装置 |
CN105391683A (zh) * | 2015-09-30 | 2016-03-09 | 小米科技有限责任公司 | 远程方法调用的方法、装置及系统 |
CN108400885A (zh) * | 2018-01-17 | 2018-08-14 | 北京奇艺世纪科技有限公司 | 一种服务可用性检测方法、装置及电子设备 |
CN110865876A (zh) * | 2019-09-23 | 2020-03-06 | 珠海格力电器股份有限公司 | 一种服务依赖资源的调度方法及装置 |
CN111984309A (zh) * | 2020-08-31 | 2020-11-24 | 北京达佳互联信息技术有限公司 | 服务调用方法、装置、服务器及存储介质 |
CN112055083A (zh) * | 2020-09-08 | 2020-12-08 | 工银科技有限公司 | 请求处理方法、装置、电子设备和介质 |
USD909646S1 (en) | 2018-11-27 | 2021-02-02 | West Coast Imports, Inc. | Circular light |
CN113014673A (zh) * | 2021-04-08 | 2021-06-22 | 广州趣丸网络科技有限公司 | 一种服务调用优化方法和装置 |
CN114726767A (zh) * | 2022-02-28 | 2022-07-08 | 深圳震有科技股份有限公司 | 一种web服务响应异常检测方法、装置及存储介质 |
US11692695B2 (en) | 2019-02-12 | 2023-07-04 | West Coast Imports, Inc. | Rotating light |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571274B1 (en) * | 1998-11-05 | 2003-05-27 | Beas Systems, Inc. | Clustered enterprise Java™ in a secure distributed processing system |
CN1284094C (zh) * | 2002-04-30 | 2006-11-08 | 电子科技大学 | 一种构建分布式并行调度网络服务器系统的方法 |
JP4432814B2 (ja) * | 2005-03-25 | 2010-03-17 | ヤマハ株式会社 | 演奏データ通信管理システム及び演奏データ通信管理装置 |
-
2008
- 2008-09-12 CN CN 200810149301 patent/CN101674320B/zh active Active
-
2010
- 2010-08-18 HK HK10107873.5A patent/HK1141639A1/xx unknown
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905551A (zh) * | 2014-04-02 | 2014-07-02 | 北京中交兴路车联网科技有限公司 | 一种服务调用方法及装置 |
CN105391683A (zh) * | 2015-09-30 | 2016-03-09 | 小米科技有限责任公司 | 远程方法调用的方法、装置及系统 |
CN108400885A (zh) * | 2018-01-17 | 2018-08-14 | 北京奇艺世纪科技有限公司 | 一种服务可用性检测方法、装置及电子设备 |
USD909646S1 (en) | 2018-11-27 | 2021-02-02 | West Coast Imports, Inc. | Circular light |
US11692695B2 (en) | 2019-02-12 | 2023-07-04 | West Coast Imports, Inc. | Rotating light |
CN110865876A (zh) * | 2019-09-23 | 2020-03-06 | 珠海格力电器股份有限公司 | 一种服务依赖资源的调度方法及装置 |
CN111984309A (zh) * | 2020-08-31 | 2020-11-24 | 北京达佳互联信息技术有限公司 | 服务调用方法、装置、服务器及存储介质 |
CN112055083A (zh) * | 2020-09-08 | 2020-12-08 | 工银科技有限公司 | 请求处理方法、装置、电子设备和介质 |
CN112055083B (zh) * | 2020-09-08 | 2022-06-10 | 中国工商银行股份有限公司 | 请求处理方法、装置、电子设备和介质 |
CN113014673A (zh) * | 2021-04-08 | 2021-06-22 | 广州趣丸网络科技有限公司 | 一种服务调用优化方法和装置 |
CN114726767A (zh) * | 2022-02-28 | 2022-07-08 | 深圳震有科技股份有限公司 | 一种web服务响应异常检测方法、装置及存储介质 |
CN114726767B (zh) * | 2022-02-28 | 2024-01-02 | 深圳震有科技股份有限公司 | 一种web服务响应异常检测方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
HK1141639A1 (en) | 2010-11-12 |
CN101674320B (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101674320B (zh) | 一种集群环境下的服务寻址方法及装置 | |
CN109660607A (zh) | 一种业务请求分发方法、接收方法、装置及服务器集群 | |
CN103888277B (zh) | 一种网关容灾备份方法、装置和系统 | |
US8126836B2 (en) | Call group management using the session initiation protocol | |
CN102158346A (zh) | 基于云计算的信息采集系统及方法 | |
CN103345420A (zh) | 批量调用api接口的方法、系统和装置 | |
CN105025080B (zh) | 一种分布式系统的过载保护方法和服务器 | |
CN110505155A (zh) | 请求降级处理方法、装置、电子设备及存储介质 | |
CN110134534B (zh) | 基于nio针对大数据分布式系统进行消息处理优化的系统及方法 | |
CN103019853A (zh) | 一种作业任务的调度方法和装置 | |
CN103733568A (zh) | 使用客户端-服务器架构的流处理 | |
CN108667719A (zh) | 一种实时消息传递方法及系统 | |
CN109800204B (zh) | 数据分配方法及相关产品 | |
CN104811323A (zh) | 一种数据请求方法、装置、节点服务器及cdn系统 | |
CN103795569A (zh) | 一种基于连接池的服务器连接方法和装置 | |
CN106385435A (zh) | 一种业务系统的服务治理方法和系统 | |
CN103067422A (zh) | 一种业务发放的方法、设备及系统 | |
CN104579765A (zh) | 一种集群系统的容灾方法和装置 | |
US10715628B2 (en) | Attribute operating method and device | |
CN107426323A (zh) | 一种基于分布式的资源服务与可视化监控系统及方法 | |
CN111737027A (zh) | 分布式存储系统的Lookup处理方法、系统、终端及存储介质 | |
CN105430028A (zh) | 服务调用方法、提供方法及节点 | |
WO2021190088A1 (zh) | 任务派发方法、装置、任务执行系统和服务器 | |
CN108881493A (zh) | 一种任务进度信息推送方法、装置及设备 | |
CN106790354B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1141639 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1141639 Country of ref document: HK |