一种基于SpringCloud微服务的0失败优雅停机系统
文献发布时间:2024-04-18 19:44:28
技术领域
本发明涉及SpringCloud微服务系统领域,尤其涉及一种基于SpringCloud微服务的0失败优雅停机系统。
背景技术
应用版本更迭,经常停启服务,一般需要维护窗口或者交易量少时做系统升级,但是不可避免出现失败交易。基于以上问题,重新设计优雅停机方案,开发了一种基于SpringCloud微服务的优雅停机系统。
SpringCloud提供了优雅停机方案,但不能实现0失败,此技术方案在原有技术上升级。
现有停机方案在停机时,不接收交易请求,交易请求都在阻塞中,等停机后,交易失败。但对于支付类交易,只要客户端收到通讯级错误信息,会当做超时处理,还需要后续处理。
发明内容
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种基于SpringCloud微服务的0失败优雅停机系统。
根据本发明的一个方面,提供了一种基于SpringCloud微服务的0失败优雅停机系统,所述优雅停机系统包括:
停止服务时,实现0失败,实现注销流程;
所述注销流程包括:注册中心注销服务,健康检查设置为不健康,Jms服务关闭容器,等待一段时间后停止服务。
可选的,所述注册中心注销服务,在服务真正停止前,将服务从注册中心注销,服务是可用状态。
可选的,所述健康检查设置为不健康,将健康检查设置为不健康状态,服务是可用状态。
可选的,所述Jms服务关闭容器,将Jms容器关闭,服务依然是可用状态。
可选的,所述等待一段时间后停止服务,直至停止服务。
本发明提供的一种基于SpringCloud微服务的0失败优雅停机系统,所述优雅停机系统包括:停止服务时,实现0失败,实现注销流程;所述注销流程包括:注册中心注销服务,健康检查设置为不健康,Jms服务关闭容器,等待一段时间后停止服务。在发出停机指令时先向注册中间下线,等待微服务集群中所有应用重新同步到可用服务,在执行停机动作;发出停机指令时,先将健康检查置为不健康,等待F5或其它源端不在向此应用发送交易,在执行停机动作。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于SpringCloud微服务的0失败优雅停机系统组成示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
如图1所示,描述了一个服务停止的过程。
整体基于SpringCloud微服务。
B1服务收到停机指令时,先去注册中心下线,下线后,A服务依然可能访问此服务,需要A服务去注册中心同步后,获取到B1服务已下线,才不会发起调用,时间依赖微服务系统设置。
B1服务收到停机指令时,将本服务设置为不健康,此时F5等外部系统依然会发送情况到此服务,等F5定时探测此服务不可用后,不再发起调用,多长时间依赖探测设置。
B1服务收到停机指令时,将其它处理业务请求服务关闭,如Jms容器,不在处理Jms消息。
等待没有外部系统调用此服务时,停止此服务。
一种基于SpringCloud微服务的0失败优雅停机系统,包括:服务注销,健康检查,Jms容器关闭。
服务注销是在停机指令发出后,先不真正停止服务,而是将此服务从注册中心下线,等待微服务集群中其它应用同步到此服务已下线,不在往此服务发送消息,此刻真正关闭服务。
健康检查是在停机指令发出后,先不真正停止服务,外部探测到此服务不可用,此时如果有交易,可以正常处理,等待外部系统不在发送交易到此服务,在真正关闭服务。
Jms容器关闭是在停机指令发出后,先不真正停止服务,关闭Jms容器,不在接收Jms消息。
有益效果:本发明涉及SpringCloud微服务系统,实现0失败真正的优雅停机。在发出停机指令时先向注册中间下线,等待微服务集群中所有应用重新同步到可用服务,在执行停机动作;发出停机指令时,先将健康检查置为不健康,等待F5或其它源端不在向此应用发送交易,在执行停机动作。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 基于springcloud实现的微服务监控系统
- 基于springcloud微服务的继电保护故障信息系统及其传输方法