一种基于Dubbo框架的微服务停机方法及服务器技术

技术编号:24863175 阅读:22 留言:0更新日期:2020-07-10 19:13
本发明专利技术提供了一种基于Dubbo框架的微服务停机方法及服务器,所述方法包括:接收提供方节点服务器传输的停机标识信息,设置所述提供方节点服务器的状态标识为停机状态;接收客户端传输的业务请求,确定用于处理所述业务请求的目标提供方节点服务器;校验所述目标提供方节点服务器的状态标识,若所述状态标识为正常状态,将所述业务请求发送至所述提供方节点服务器进行业务处理;若所述状态标识为停机状态,重新确定所述目标提供方节点服务器并进行状态标识校验直至得到状态标识为正常状态的目标提供方节点服务器并将所述业务请求发送至该目标提供方节点服务器,本发明专利技术可避免注册中心推送延迟带来的交易失败和停机耗时增长等问题。

【技术实现步骤摘要】
一种基于Dubbo框架的微服务停机方法及服务器
本专利技术涉及微服务
,尤其涉及一种基于Dubbo框架的微服务停机方法及服务器。
技术介绍
随着分布式微服务的流行,微服务版本更新迭代的频率更加频繁,保障提供交易服务的提供方节点停机的优雅性变得越来越重要。提供方节点的优雅停机需保障在途的交易能正确执行并返回,避免停机过程中交易的损失。在Dubbo微服务框架中提供方节点停机主要依靠注册中心通知消费方节点,消费方节点收到注册中心通知后不再往停机的提供方节点分发请求,并等待在途的请求返回。然而,这种机制提供方节点和消费方节点与注册中心有强耦合性。在应用于大规模节点上下线的场景下,注册中心推送存在较大的延迟,会导致如下问题:1、新增消费方节点在延迟期间仍然可以从注册中心获取到提供方节点地址信息,从而会与停机节点建立连接。2、存量消费方节点在此期间仍然分发流量到停机节点,从而导致在途交易失败或者停机时间变长。3、如果产生交易异常失败,底层框架无补充机制,需要应用自身捕获异常类型进行补偿。
技术实现思路
为了解决以上问题的至少之一,本专利技术的一个目的在于提供一种基于Dubbo框架的微服务停机方法,消除微服务节点停机消息通知对注册中心的强依赖,避免注册中心推送延迟带来的交易失败和停机耗时增长等问题。本专利技术的另一个目的在于提供一种提供方节点服务器。本专利技术的再一个目的在于提供一种消费方节点服务器。本专利技术的还一个目的在于提供一种计算机设备。本专利技术的还一个目的在于提供一种可读介质。为了达到以上目的,本专利技术一方面公开了一种基于Dubbo框架的微服务停机方法,包括:接收提供方节点服务器传输的停机标识信息,设置所述提供方节点服务器的状态标识为停机状态;接收客户端传输的业务请求,确定用于处理所述业务请求的目标提供方节点服务器;校验所述目标提供方节点服务器的状态标识,若所述状态标识为正常状态,将所述业务请求发送至所述提供方节点服务器进行业务处理;若所述状态标识为停机状态,重新确定所述目标提供方节点服务器并进行状态标识校验直至得到状态标识为正常状态的目标提供方节点服务器并将所述业务请求发送至该目标提供方节点服务器。优选的,所述接收客户端传输的业务请求,确定用于处理所述业务请求的目标提供方节点服务器具体包括:接收客户端传输的业务请求;在注册中心提供的正常状态的提供方节点服务器列表中确定目标提供方节点服务器。优选的,进一步包括:接收注册中心发送的停机通知;确定所述停机通知对应的停机的提供方节点服务器;在正常状态的提供方节点服务器列表中删除所述停机的提供方节点服务器。优选的,进一步包括在接收提供方节点服务器传输的停机标识信息,之后:确定发送所述停机标识信息的提供方节点服务器是否存在已转发且未处理完成的已转业务请求;若是,确定所述已转业务请求是否为幂等交易;若是,则重新确定目标提供方节点服务器并将所述已转业务请求发送至所述目标提供方节点服务器。本专利技术还公开了一种基于Dubbo框架的微服务停机方法,包括:根据接收的停机信号形成停机标识信息;将所述停机标识信息传输至消费方节点服务器以使所述消费方节点服务器设置提供方节点服务器的状态标识为停机状态,当接收客户端传输的业务请求时,确定用于处理所述业务请求的目标提供方节点服务器,校验所述目标提供方节点服务器的状态标识,若所述状态标识为正常状态,将所述业务请求发送至所述提供方节点服务器进行业务处理,若所述状态标识为停机状态,重新确定所述目标提供方节点服务器并进行状态标识校验直至得到状态标识为正常状态的目标提供方节点服务器并将所述业务请求发送至该目标提供方节点服务器。本专利技术还公开了一种消费方节点服务器,包括:停机信息接收单元,用于接收提供方节点服务器传输的停机标识信息,设置所述提供方节点服务器的状态标识为停机状态;业务请求处理单元,用于接收客户端传输的业务请求,确定用于处理所述业务请求的目标提供方节点服务器;提供方节点校验单元,用于校验所述目标提供方节点服务器的状态标识,若所述状态标识为正常状态,将所述业务请求发送至所述提供方节点服务器进行业务处理;若所述状态标识为停机状态,重新确定所述目标提供方节点服务器并进行状态标识校验直至得到状态标识为正常状态的目标提供方节点服务器并将所述业务请求发送至该目标提供方节点服务器。优选的,所述业务请求处理单元具体包括:请求接收模块,用于接收客户端传输的业务请求;提供方节点确定模块,用于在注册中心提供的正常状态的提供方节点服务器列表中确定目标提供方节点服务器。优选的,进一步包括停机处理单元,用于接收注册中心发送的停机通知,确定所述停机通知对应的停机的提供方节点服务器,在正常状态的提供方节点服务器列表中删除所述停机的提供方节点服务器。优选的,进一步包括交易补偿单元,用于在接收提供方节点服务器传输的停机标识信息之后,确定发送所述停机标识信息的提供方节点服务器是否存在已转发且未处理完成的已转业务请求,若是,确定所述已转业务请求是否为幂等交易,若是,则重新确定目标提供方节点服务器并将所述已转业务请求发送至所述目标提供方节点服务器。本专利技术还公开了一种提供方节点服务器,包括:指令接收单元,用于根据接收的停机信号形成停机标识信息;停机信息发送单元,用于将所述停机标识信息传输至消费方节点服务器以使所述消费方节点服务器设置所述提供方节点服务器的状态标识为停机状态,当接收客户端传输的业务请求时,确定用于处理所述业务请求的目标提供方节点服务器,校验所述目标提供方节点服务器的状态标识,若所述状态标识为正常状态,将所述业务请求发送至所述提供方节点服务器进行业务处理,若所述状态标识为停机状态,重新确定所述目标提供方节点服务器并进行状态标识校验直至得到状态标识为正常状态的目标提供方节点服务器并将所述业务请求发送至该目标提供方节点服务器。本专利技术还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。本专利技术还公开了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法。本专利技术为提供方节点服务器设置状态标识,可直接接收提供方节点服务器传输的停机标识信息,将停机标识信息对应的提供方节点服务器的状态标识设置为停机状态。在接收到客户端传输的业务请求时,首先确定可用的提供方节点服务器,然后根据提供方节点服务器的状态标识确定该提供方节点服务器是否停机,若停机则选择其他可用的提供方节点服务器,避免提供方节点服务器通过注册中心通知停机的信息延迟阶段内消费方节点服务器仍与停机的提供方节点服务器建立连接而导致任务无法执行的情况。本专利技术中停机标识信息是停机的提供方节点服务器直接发送的,相对于现有通过注册中心传输提供方节点服务器的停机信息的时效性更强,可以避免通过注册中心发送停机通知而本文档来自技高网...

【技术保护点】
1.一种基于Dubbo框架的微服务停机方法,其特征在于,包括:/n接收提供方节点服务器传输的停机标识信息,设置所述提供方节点服务器的状态标识为停机状态;/n接收客户端传输的业务请求,确定用于处理所述业务请求的目标提供方节点服务器;/n校验所述目标提供方节点服务器的状态标识,若所述状态标识为正常状态,将所述业务请求发送至所述提供方节点服务器进行业务处理;若所述状态标识为停机状态,重新确定所述目标提供方节点服务器并进行状态标识校验直至得到状态标识为正常状态的目标提供方节点服务器并将所述业务请求发送至该目标提供方节点服务器。/n

【技术特征摘要】
1.一种基于Dubbo框架的微服务停机方法,其特征在于,包括:
接收提供方节点服务器传输的停机标识信息,设置所述提供方节点服务器的状态标识为停机状态;
接收客户端传输的业务请求,确定用于处理所述业务请求的目标提供方节点服务器;
校验所述目标提供方节点服务器的状态标识,若所述状态标识为正常状态,将所述业务请求发送至所述提供方节点服务器进行业务处理;若所述状态标识为停机状态,重新确定所述目标提供方节点服务器并进行状态标识校验直至得到状态标识为正常状态的目标提供方节点服务器并将所述业务请求发送至该目标提供方节点服务器。


2.根据权利要求1所述的基于Dubbo框架的微服务停机方法,其特征在于,所述接收客户端传输的业务请求,确定用于处理所述业务请求的目标提供方节点服务器具体包括:
接收客户端传输的业务请求;
在注册中心提供的正常状态的提供方节点服务器列表中确定目标提供方节点服务器。


3.根据权利要求2所述的基于Dubbo框架的微服务停机方法,其特征在于,进一步包括:
接收注册中心发送的停机通知;
确定所述停机通知对应的停机的提供方节点服务器;
在正常状态的提供方节点服务器列表中删除所述停机的提供方节点服务器。


4.根据权利要求1所述的基于Dubbo框架的微服务停机方法,其特征在于,进一步包括在接收提供方节点服务器传输的停机标识信息,之后:
确定发送所述停机标识信息的提供方节点服务器是否存在已转发且未处理完成的已转业务请求;
若是,确定所述已转业务请求是否为幂等交易;
若是,则重新确定目标提供方节点服务器并将所述已转业务请求发送至所述目标提供方节点服务器。


5.一种基于Dubbo框架的微服务停机方法,其特征在于,包括:
根据接收的停机信号形成停机标识信息;
将所述停机标识信息传输至消费方节点服务器以使所述消费方节点服务器设置提供方节点服务器的状态标识为停机状态,当接收客户端传输的业务请求时,确定用于处理所述业务请求的目标提供方节点服务器,校验所述目标提供方节点服务器的状态标识,若所述状态标识为正常状态,将所述业务请求发送至所述提供方节点服务器进行业务处理,若所述状态标识为停机状态,重新确定所述目标提供方节点服务器并进行状态标识校验直至得到状态标识为正常状态的目标提供方节点服务器并将所述业务请求发送至该目标提供方节点服务器。


6.一种消费方节点服务器,其特征在于,包括:
停机信息接收单元,用于接收提供方节点服务器传输的停机标识信息,设置所述提供方节点服务器的状态标识为停机状...

【专利技术属性】
技术研发人员:让涛夏龙飞张家宇张远征
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1