集群节点控制方法、装置、设备、存储介质和程序产品制造方法及图纸

技术编号:36948312 阅读:8 留言:0更新日期:2023-03-22 19:09
本公开提供了一种集群节点控制方法,涉及云计算技术领域,可以应用于金融科技领域。该方法应用于服务注册中心集群,所述服务注册中心集群至少包括第一服务注册中心节点和第二服务注册中心节点,所述第一服务注册中心节点和所述第二注册中心节点上均设置有推送开关,所述控制方法包括:在确定所述服务注册中心集群发生故障后,关闭所述推送开关;响应于服务消费端发起的服务订阅请求,根据所述推送开关的状态向所述服务消费端返回服务信息。本公开还提供了一种集群节点控制装置、设备、存储介质和程序产品。质和程序产品。质和程序产品。

【技术实现步骤摘要】
集群节点控制方法、装置、设备、存储介质和程序产品


[0001]本公开涉及云计算
,具体涉及微服务集群
,更具体地涉及一种集群节点控制方法、装置、设备、存储介质和程序产品。

技术介绍

[0002]Eureka是Netfix中的一个开源框架,它和Zookeeper、Consul一样,都是用于服务注册管理的。Eureka是AP架构,突出可用性。在生产实际当中,网络抖动等网络故障还是普遍存在的,严重的情况下甚至会出现“脑裂”问题。发生脑裂问题后,服务消费方从Eureka Server上查询提供方列表时就会获取到空(即没有可用的提供方)或者不全(或不是最新)的提供方列表(只获取到同区的提供方,而不同区的服务提供方则因过期自动下线)。进而影响服务的正常调用。
[0003]相关技术中,当服务消费者获取到的服务提供方列表不全或不是最新的情况时,可以通过重试机制尽可能地保障服务最终的成功调用。有些服务调用并不适合使用重试机制,特别是一些幂等性的场景,同时在提供方列表为空的情况下,即使使用了重试机制,也无法成功调用服务。
[0004]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0005]鉴于上述问题,本公开提供了提高服务调用可用性的集群节点控制方法、装置、设备、介质和程序产品。
[0006]根据本公开的第一个方面,提供了一种集群节点控制方法,应用于服务注册中心集群,所述服务注册中心集群至少包括第一服务注册中心节点和第二服务注册中心节点,所述第一服务注册中心节点和所述第二注册中心节点上均设置有推送开关,所述控制方法包括:
[0007]在确定所述服务注册中心集群发生故障后,关闭所述推送开关;
[0008]响应于服务消费端发起的服务订阅请求,根据所述推送开关的状态向所述服务消费端返回服务信息。
[0009]根据本公开的实施例,所述根据所述推送开关的状态向所述服务消费端返回服务信息包括:
[0010]当确定所述推送开关的状态为关闭状态时,向所述服务消费端返回特定状态码,所述特定状态码用于表征所述服务注册中心集群的健康状态;以及
[0011]当确定所述推送开关的状态为开启状态时,向所述服务消费端返回当前服务注册列表。
[0012]根据本公开的实施例,所述确定所述服务注册中心集群发生故障包括:
[0013]实时获取第一服务注册中心节点的服务注册信息和所述第二服务中心节点的服
务注册信息;以及
[0014]当确定服务注册中心节点间的服务注册数量差值大于预设阈值时,确定所述服务注册中心集群发生故障。
[0015]根据本公开的实施例,还包括:
[0016]在确定所述服务注册中心集群故障消除后,打开所述推送开关。
[0017]本公开的第二方面提供了一种服务注册列表的更新方法,应用于服务消费端,包括:
[0018]向服务注册中心节点发送服务订阅请求;
[0019]接收所述服务注册中心节点返回的服务信息;
[0020]当确定所述服务信息为特定状态码时,使用本地缓存的服务注册列表进行服务调用;
[0021]当确定所述服务信息为所述服务注册中心节点的当前服务注册列表时,根据所述当前服务注册列表更新本地缓存的服务注册列表。
[0022]本公开的第三方面提供了一种集群节点控制装置,设置于服务注册中心集群,所述服务注册中心集群至少包括第一服务注册中心节点和第二服务注册中心节点,所述第一服务注册中心节点和所述第二注册中心节点上均设置有推送开关,所述装置包括:
[0023]推送开关控制模块,用于在确定所述服务注册中心集群发生故障后,关闭所述推送开关;
[0024]服务信息返回模块,用于响应于服务消费端发起的服务订阅请求,根据所述推送开关的状态向所述服务消费端返回服务信息。
[0025]根据本公开的实施例,还包括故障判断模块。
[0026]故障判断模块,用于判断当前集群是否发生故障。
[0027]根据本公开的实施例,故障判断模块包括服务信息获取子模块和故障确定子模块。
[0028]服务信息获取子模块,用于实时获取第一服务注册中心节点的服务注册信息和所述第二服务中心节点的服务注册信息;
[0029]故障确定子模块,用于当确定服务注册中心节点间的服务注册数量差值大于预设阈值时,确定所述服务注册中心集群发生故障。
[0030]根据本公开的实施例,服务信息返回模块包括第一确定子模块和第二确定子模块。
[0031]第一确定子模块,用于当确定所述推送开关的状态为关闭状态时,向所述服务消费端返回特定状态码,所述特定状态码用于表征所述服务注册中心集群的健康状态。
[0032]第二确定子模块,用于当确定所述推送开关的状态为开启状态时,向所述服务消费端返回当前服务注册列表。
[0033]本公开的第四方面提供了一种服务注册列表的更新装置,设置于服务消费端,所述更新装置包括:
[0034]服务订阅模块,用于向服务注册中心节点发送服务订阅请求;
[0035]接收模块,用于接收所述服务注册中心节点返回的服务信息;
[0036]第一确定模块,用于当确定所述服务信息为特定状态码时,使用本地缓存的服务
注册列表进行服务调用;
[0037]第二确定模块,用于当确定所述服务信息为所述服务注册中心节点的当前服务注册列表时,根据所述当前服务注册列表更新本地缓存的服务注册列表。
[0038]本公开的第五方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述方法。
[0039]本公开的第六方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述方法。
[0040]本公开的第七方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法。
[0041]通过本公开的实施例提供的一种集群节点控制方法,通过增加注册中心集群订阅推送开关机制,在故障期间通过控制服务订阅请求返回特定的状态码,使服务消费方感知注册中心集群的健康状态,从而判断是否需要更新本地缓存的提供方列表,保证了故障期间服务的正常调用,实现简单、实施成本低,降低注册中心集群发生故障造成的影响。
附图说明
[0042]通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
[0043]图1示意性示出了微服务架构下服务调用的流程示意图;
[0044]图2示意性示出了根据本公开实施例的集群节点控制方法、装置、设备、介质和程序产品的应用场景图;
[0045]图3示意性示出了根据本公开实施例提供的集群节点控本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集群节点控制方法,应用于服务注册中心集群,所述服务注册中心集群至少包括第一服务注册中心节点和第二服务注册中心节点,所述第一服务注册中心节点和所述第二注册中心节点上均设置有推送开关,其特征在于,所述控制方法包括:在确定所述服务注册中心集群发生故障后,关闭所述推送开关;响应于服务消费端发起的服务订阅请求,根据所述推送开关的状态向所述服务消费端返回服务信息。2.根据权利要求1所述的控制方法,其特征在于,所述根据所述推送开关的状态向所述服务消费端返回服务信息包括:当确定所述推送开关的状态为关闭状态时,向所述服务消费端返回特定状态码,所述特定状态码用于表征所述服务注册中心集群的健康状态;以及当确定所述推送开关的状态为开启状态时,向所述服务消费端返回当前服务注册列表。3.根据权利要求1所述的控制方法,其特征在于,所述确定所述服务注册中心集群发生故障包括:实时获取第一服务注册中心节点的服务注册信息和所述第二服务中心节点的服务注册信息;以及当确定服务注册中心节点间的服务注册数量差值大于预设阈值时,确定所述服务注册中心集群发生故障。4.根据权利要求1至3中任一项所述的控制方法,其特征在于,还包括:在确定所述服务注册中心集群故障消除后,打开所述推送开关。5.一种服务注册列表的更新方法,应用于服务消费端,其特征在于,所述更新方法包括:向服务注册中心节点发送服务订阅请求;接收所述服务注册中心节点返回的服务信息;当确定所述服务信息为特定状态码时,使用本地缓存的服务注册列表进行服务调用;当确定所述服务信息为所述服务注册中心节点的当前服务...

【专利技术属性】
技术研发人员:凌晨顾欣王鹏培刘成锋
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1