基于微服务框架的安全断路方法、装置及计算设备转让专利

申请号 : CN201911039394.0

文献号 : CN112749050B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王璇史军艇竺士杰

申请人 : 中国移动通信集团浙江有限公司中国移动通信集团有限公司

摘要 :

本发明实施例涉及通信技术领域,公开了一种基于微服务框架的安全断路方法、装置及计算设备,该方法包括:监听由服务端发出的动作前置响应信号;根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;根据所述确认信息指示服务器销毁容器。通过上述方式,本发明实施例能够实现应用在执行关闭操作时,主动通知注册中心自身的状态,提高了微服务应用的销毁完整性,规避了心跳检测的延迟真空期,大幅度降低业务感知的风险。

权利要求 :

1.一种基于微服务框架的安全断路方法,其特征在于,应用于分别与服务路由器及服务端连接的安全断路装置;所述服务端内包括容器,所述方法包括:创建ServerSocket或ServerSocketChannel;

应用所述ServerSocket或所述ServerSocketChannel监听服务端端口的动作前置响应信号;

根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;

基于报文格式对所述确认信息进行解析,获取带有IP、端口以及容器编号的报文信息;

采集所述服务的进程状态信息;

根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器。

2.根据权利要求1所述的方法,其特征在于,所述根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,还包括:接收所述动作前置响应信号;

根据所述动作前置响应信号通知服务路由器删除所述服务的注册信息。

3.根据权利要求2所述的方法,其特征在于,所述根据所述动作前置响应信号通知服务路由器删除所述服务的注册信息,包括:根据所述动作前置响应信号调用所述服务路由器的调用接口,通知所述服务路由器删除所述服务的注册信息。

4.根据权利要求1所述的方法,其特征在于,所述根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器,包括:根据所述确认信息以及所述服务的进程状态信息判断线程是否已释放;

如果是,则指示所述服务器销毁容器;

如果否,则是判断是否超时,如果是,则指示所述服务器销毁容器;如果否,则返回所述采集所述服务的进程状态信息的步骤。

5.一种基于微服务框架的安全断路装置,其特征在于,应用于分别与服务路由器及服务端连接的安全断路装置;所述服务端内包括容器,所述装置包括:信号传输单元,用于创建ServerSocket或ServerSocketChannel;应用所述ServerSocket或所述ServerSocketChannel监听服务端端口的动作前置响应信号;

安全断路单元,用于根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;

判断单元,用于基于报文格式对所述确认信息进行解析,获取带有IP、端口以及容器编号的报文信息;采集所述服务的进程状态信息;根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器。

6.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行根据权利要求1‑4任一项所述基于微服务框架的安全断路方法的步骤。

7.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行根据权利要求1‑4任一项所述基于微服务框架的安全断路方法的步骤。

说明书 :

基于微服务框架的安全断路方法、装置及计算设备

技术领域

[0001] 本发明实施例涉及通信技术领域,具体涉及一种基于微服务框架的安全断路方法、装置及计算设备。

背景技术

[0002] 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。微服务架构就是解决现阶段传统垂直架构的一个技术方案,就是将功能分散到各个离散的服务中然后实现对方案的解耦。服务更原子,自治更小,可以实现高密度部署服务。
[0003] 但在微服务的实际使用来看,并非传统的静态环境,而是面对一个非常动态的环境,动态环境下的服务之间的关系需要一种有效的路由管理手段,在微服务中引入了服务注册和服务发现的这套方式,通过注册后的服务才可被其他服务发现并建立路由关系。然而服务并非是一直稳定的,尤其在容器环境中,还会存在容器自愈、动态扩缩容等现象,无法保证客户端应用能够正常提供服务。因此,注册中心(服务路由器)往往会提供一些检测客户端的方式,如心跳检测或健康端点检测的方式。当应用停止到健康检查重试多次,注册中心判断应用已销毁后才进行摘除,在此过程中客户端会产生异常访问现象,无法满足现实的微服务下业务的连续性需要,也不符合未来微服务发展的趋势。

发明内容

[0004] 鉴于上述问题,本发明实施例提供了一种基于微服务框架的安全断路方法、装置及计算设备,克服了上述问题或者至少部分地解决了上述问题。
[0005] 根据本发明实施例的一个方面,提供了一种基于微服务框架的安全断路方法,所述方法包括:监听由服务端发出的动作前置响应信号;根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;根据所述确认信息指示服务器销毁容器。
[0006] 在一种可选的方式中,所述监听由服务端发出的动作前置响应信号,包括:创建ServerSocket或ServerSocketChannel;应用所述ServerSocket或所述ServerSocketChannel监听服务端端口的动作前置响应信号。
[0007] 在一种可选的方式中,所述根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,还包括:接收所述动作前置响应信号;根据所述动作前置响应信号通知服务路由器删除所述服务的注册信息。
[0008] 在一种可选的方式中,所述根据所述动作前置响应信号通知服务路由器删除所述服务的注册信息,包括:根据所述动作前置响应信号调用所述服务路由器的调用接口,通知所述服务路由器删除所述服务的注册信息。
[0009] 在一种可选的方式中,所述根据所述确认信息指示服务器销毁容器,包括:对所述确认信息进行解析;采集所述服务的进程状态信息;根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器。
[0010] 在一种可选的方式中,所述对所述确认信息进行解析,包括:基于报文格式对所述确认信息进行解析,获取带有IP、端口以及容器编号的报文信息。
[0011] 在一种可选的方式中,所述根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器,包括:根据所述确认信息以及所述服务的进程状态信息判断线程是否已释放;如果是,则指示所述服务器销毁容器;如果否,则是判断是否超时,如果是,则指示所述服务器销毁容器;如果否,则返回所述采集所述服务的进程状态信息的步骤。
[0012] 根据本发明实施例的另一个方面,提供了一种基于微服务框架的安全断路装置,所述装置包括:信号传输单元,用于监听由服务端发出的动作前置响应信号;安全断路单元,用于根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;判断单元,用于根据所述确认信息指示服务器销毁容器。
[0013] 根据本发明实施例的另一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
[0014] 所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于微服务框架的安全断路方法的步骤。
[0015] 根据本发明实施例的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行上述基于微服务框架的安全断路的步骤。
[0016] 本发明实施例通过监听由服务端发出的动作前置响应信号;根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;根据所述确认信息指示服务器销毁容器,能够实现应用在执行关闭操作时,主动通知注册中心自身的状态,提高了微服务应用的销毁完整性,规避了心跳检测的延迟真空期,大幅度降低业务感知的风险。
[0017] 上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0018] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0019] 图1示出了本发明实施例提供的基于微服务框架的安全断路装置的应用场景示意图;
[0020] 图2示出了本发明实施例提供的基于微服务框架的安全断路方法的流程示意图;
[0021] 图3示出了本发明实施例提供的基于微服务框架的安全断路方法的步骤S13的流程示意图;
[0022] 图4示出了本发明实施例提供的基于微服务框架的安全断路装置的结构示意图;
[0023] 图5示出了本发明实施例提供的计算设备的结构示意图。

具体实施方式

[0024] 下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
[0025] 图1示出了本发明实施例提供的基于微服务框架的安全断路方法的应用场景示意图。如图1所示,在微服务调用过程中,通过接收服务端动作前置响应信号,调用应用基于微服务框架的安全断路方法的安全断路装置将服务路由器中变化的服务端容器移除,保证客户端访问的服务端容器实时存在且有效。
[0026] 图2示出了本发明实施例提供的基于微服务框架的安全断路方法的流程示意图。如图2所示,基于微服务框架的安全断路方法包括:
[0027] 步骤S11:监听由服务端发出的动作前置响应信号。
[0028] 在步骤S11中,创建ServerSocket或ServerSocketChannel;应用所述ServerSocket或所述ServerSocketChannel监听服务端端口的动作前置响应信号。
ServerSocket或ServerSocketChannel负责接收客户连接请求,在本发明实施例中,在微服务调用过程中,通过ServerSocket或ServerSocketChannel接收服务端发出的动作前置响应信号。
[0029] 步骤S12:根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息。
[0030] 在步骤S12中,接收所述动作前置响应信号;根据所述动作前置响应信号通知服务路由器删除所述服务的注册信息。具体地,根据所述动作前置响应信号调用所述服务路由器的调用接口(Application Programming Interface,API),通知所述服务路由器删除所述服务的注册信息。服务路由器会对多种语言提供API,在不同的使用场景下需要对API进行必要的二次开发。以对zookeeper的通用Java客户端API进行举例:
[0031] 获取节点内容的方法定义:
[0032] public byte[]getData(String path,boolean watch,Stat stat)
[0033] 同步删除节点内容的方法定义:
[0034] public void delete(final  String  path,int  version)throws InterruptedException,KeeperException
[0035] 在服务路由器删除所述服务的注册信息之后,返回确认信息。
[0036] 本发明实施例在应用停止前通过调用API的方式,实现了应用在执行关闭操作时,主动通知注册中心自身的状态,提高了微服务应用的销毁完整性。
[0037] 步骤S13:根据所述确认信息指示服务器销毁容器。
[0038] 在步骤S13中,对所述确认信息进行解析;采集所述服务的进程状态信息;根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器。更具体地,根据所述确认信息以及所述服务的进程状态信息判断线程是否已释放;如果是,则指示所述服务器销毁容器;如果否,则是判断是否超时,如果是,则指示所述服务器销毁容器;如果否,则返回所述采集所述服务的进程状态信息的步骤。
[0039] 在本发明实施例中,基于报文格式对所述确认信息进行解析,获取带有IP、端口以及容器编号的报文信息。基于接口定义,对接收的确认信息进行初步判断。报文格式为:
[0040] ”\IP\”:”\\”,”\Port\”:”\\”,”\Container_Id\”:”\\”,”\Is_Success\”:”\\”[0041] 基于报文规则进行判断处理:
[0042] 如Is_Success字段返回为N,则匹配失败,判断为失败,直接返回报错给发起客户端。如果匹配成功,则继续发信号给下一阶段。
[0043] 基于文本解析后输出的带有IP、Port和Container_Id后的报文信息,和服务端线程状态接口获取的服务信息进行智能比对并进行分析:
[0044] 扫描文本解析输出的文本信息;
[0045] 判断标记,为“N”时,直接进行影响分析,并更新动态资源池,输出待发送的文本。影响分析主要是根据规则配置基于加权算法,对问题出现的数量、字符串匹配值、新增或遗留属性等进行计算后,得出问题严重界别。方法为:
[0046]
[0047] 其中x_a为poolid=a时,activecount的值N,x_b为poolid=b时,activecount的值M。
[0048] 在步骤S13中,如图3所示,包括:
[0049] 步骤S130:接收返回的确认信息。
[0050] 在服务路由器删除服务的注册信息后,接收服务路由器返回的确认信息。
[0051] 步骤S131:判断是否正常删除。如果否,则执行步骤S132;如果是,则执行步骤S133。
[0052] 对确认信息进行解析并判断服务的注册信息是否正常删除。具体地,获取确认信息中的标志Is_Success字段,如果为N,说明未正常删除,如果为Y,说明已正常删除。
[0053] 步骤S132:返回报错。具体地,返回报错至发起服务的客户端。
[0054] 步骤S133:获取进程状态信息。
[0055] 通过服务端线程状态接口采集进程状态信息并集合。
[0056] 步骤S134:判断工作线程是否都已释放。如果否,则执行步骤S135;如果是,则执行步骤S136。
[0057] 判断进程状态信息中的工作线程是否都已释放。
[0058] 步骤S135:判断是否达到10秒。如果否,则返回步骤S133;如果是,则执行步骤S136。
[0059] 如工作线程未释放完成,则判断是否超过预设时间,优选为10秒。如果未超时,直接进行影响分析,并重新获取进程状态信息,更新动态资源池,输出待发送的文本。影响分析主要是根据规则配置基于加权算法,对问题出现的数量、字符串匹配值、新增或遗留属性等进行计算后,得出问题严重界别。
[0060] 本发明实施例通过服务路由器和应用的双重判断,经过标准算法及后续可完善的附加算法,对各指标进行分析判断的方式,实现了微服务框架下,应用的安全断路及优雅关机,规避了通常情况下强制销毁应用的弊端。
[0061] 步骤S136:指示服务器销毁容器。
[0062] 所有的工作线程都已释放之后,指示服务器销毁容器。
[0063] 本发明实施例配合应用容器线程状态及一定的算法,自动对接及判断安全断路的条件,并考虑到异常状况下的报错返回及对无法预料异常下强制销毁应用的方法,使得安全断路更加细致、准确。
[0064] 本发明实施例解决了在微服务场景下容器与注册中心的延迟,从而消除真空期内及其带来的异常现象,与现有技术相比采用端到端路由变更API、容器多纬度解析及实时判断,在容器的状态变化前做出反馈,解决延迟问题;实现了微服务架构下的通用优雅关机,其中设计到的功能模块、算法等均具有通用性,可适配各种微服务框架。
[0065] 在本发明实施例中,还需要对客户端进行适配。在Java应用中,通用的服务下线接口调用一般使用JVM Shutdown Hook(JAVA虚拟机关闭钩子)的方式来实现。
[0066] 本发明实施例通过监听由服务端发出的动作前置响应信号;根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;根据所述确认信息指示服务器销毁容器,能够实现应用在执行关闭操作时,主动通知注册中心自身的状态,提高了微服务应用的销毁完整性,规避了心跳检测的延迟真空期,大幅度降低业务感知的风险。
[0067] 图4示出了本发明实施例的基于微服务框架的安全断路装置的结构示意图。如图4所示,该基于微服务框架的安全断路装置包括:信号传输单元41、安全断路单元42以及判断单元43。其中:
[0068] 信号传输单元41监听由服务端发出的动作前置响应信号;安全断路单元42据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;判断单元43根据所述确认信息指示服务器销毁容器。
[0069] 在一种可选的方式中,信号传输单元41用于:创建ServerSocket或ServerSocketChannel;应用所述ServerSocket或所述ServerSocketChannel监听服务端端口的动作前置响应信号。
[0070] 在一种可选的方式中,安全断路单元42用于:接收所述动作前置响应信号;根据所述动作前置响应信号通知服务路由器删除所述服务的注册信息。
[0071] 在一种可选的方式中,安全断路单元42还用于:根据所述动作前置响应信号调用所述服务路由器的调用接口,通知所述服务路由器删除所述服务的注册信息。
[0072] 在一种可选的方式中,判断单元43用于:对所述确认信息进行解析;采集所述服务的进程状态信息;根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器。
[0073] 在一种可选的方式中,判断单元43用于:基于报文格式对所述确认信息进行解析,获取带有IP、端口以及容器编号的报文信息。
[0074] 在一种可选的方式中,判断单元43用于:根据所述确认信息以及所述服务的进程状态信息判断线程是否已释放;如果是,则指示所述服务器销毁容器;如果否,则是判断是否超时,如果是,则指示所述服务器销毁容器;如果否,则返回所述采集所述服务的进程状态信息的步骤。
[0075] 本发明实施例通过监听由服务端发出的动作前置响应信号;根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;根据所述确认信息指示服务器销毁容器,能够实现应用在执行关闭操作时,主动通知注册中心自身的状态,提高了微服务应用的销毁完整性,规避了心跳检测的延迟真空期,大幅度降低业务感知的风险。
[0076] 本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于微服务框架的安全断路方法。
[0077] 可执行指令具体可以用于使得处理器执行以下操作:
[0078] 监听由服务端发出的动作前置响应信号;
[0079] 根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;
[0080] 根据所述确认信息指示服务器销毁容器。
[0081] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0082] 创建ServerSocket或ServerSocketChannel;
[0083] 应用所述ServerSocket或所述ServerSocketChannel监听服务端端口的动作前置响应信号。
[0084] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0085] 接收所述动作前置响应信号;
[0086] 根据所述动作前置响应信号通知服务路由器删除所述服务的注册信息。
[0087] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0088] 根据所述动作前置响应信号调用所述服务路由器的调用接口,通知所述服务路由器删除所述服务的注册信息。
[0089] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0090] 对所述确认信息进行解析;
[0091] 采集所述服务的进程状态信息;
[0092] 根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器。
[0093] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0094] 基于报文格式对所述确认信息进行解析,获取带有IP、端口以及容器编号的报文信息。
[0095] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0096] 根据所述确认信息以及所述服务的进程状态信息判断线程是否已释放;
[0097] 如果是,则指示所述服务器销毁容器;
[0098] 如果否,则是判断是否超时,如果是,则指示所述服务器销毁容器;如果否,则返回所述采集所述服务的进程状态信息的步骤。
[0099] 本发明实施例通过监听由服务端发出的动作前置响应信号;根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;根据所述确认信息指示服务器销毁容器,能够实现应用在执行关闭操作时,主动通知注册中心自身的状态,提高了微服务应用的销毁完整性,规避了心跳检测的延迟真空期,大幅度降低业务感知的风险。
[0100] 本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任意方法实施例中的基于微服务框架的安全断路方法。
[0101] 可执行指令具体可以用于使得处理器执行以下操作:
[0102] 监听由服务端发出的动作前置响应信号;
[0103] 根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;
[0104] 根据所述确认信息指示服务器销毁容器。
[0105] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0106] 创建ServerSocket或ServerSocketChannel;
[0107] 应用所述ServerSocket或所述ServerSocketChannel监听服务端端口的动作前置响应信号。
[0108] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0109] 接收所述动作前置响应信号;
[0110] 根据所述动作前置响应信号通知服务路由器删除所述服务的注册信息。
[0111] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0112] 根据所述动作前置响应信号调用所述服务路由器的调用接口,通知所述服务路由器删除所述服务的注册信息。
[0113] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0114] 对所述确认信息进行解析;
[0115] 采集所述服务的进程状态信息;
[0116] 根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器。
[0117] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0118] 基于报文格式对所述确认信息进行解析,获取带有IP、端口以及容器编号的报文信息。
[0119] 在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0120] 根据所述确认信息以及所述服务的进程状态信息判断线程是否已释放;
[0121] 如果是,则指示所述服务器销毁容器;
[0122] 如果否,则是判断是否超时,如果是,则指示所述服务器销毁容器;如果否,则返回所述采集所述服务的进程状态信息的步骤。
[0123] 本发明实施例通过监听由服务端发出的动作前置响应信号;根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;根据所述确认信息指示服务器销毁容器,能够实现应用在执行关闭操作时,主动通知注册中心自身的状态,提高了微服务应用的销毁完整性,规避了心跳检测的延迟真空期,大幅度降低业务感知的风险。
[0124] 图5示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对设备的具体实现做限定。
[0125] 如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
[0126] 其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。处理器502,用于执行程序510,具体可以执行上述基于微服务框架的安全断路方法实施例中的相关步骤。
[0127] 具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
[0128] 处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或各个集成电路。设备包括的一个或各个处理器,可以是同一类型的处理器,如一个或各个CPU;也可以是不同类型的处理器,如一个或各个CPU以及一个或各个ASIC。
[0129] 存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。
[0130] 程序510具体可以用于使得处理器502执行以下操作:
[0131] 监听由服务端发出的动作前置响应信号;
[0132] 根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;
[0133] 根据所述确认信息指示服务器销毁容器。
[0134] 在一种可选的方式中,所述程序510使所述处理器执行以下操作:
[0135] 创建ServerSocket或ServerSocketChannel;
[0136] 应用所述ServerSocket或所述ServerSocketChannel监听服务端端口的动作前置响应信号。
[0137] 在一种可选的方式中,所述程序510使所述处理器执行以下操作:
[0138] 接收所述动作前置响应信号;
[0139] 根据所述动作前置响应信号通知服务路由器删除所述服务的注册信息。
[0140] 在一种可选的方式中,所述程序510使所述处理器执行以下操作:
[0141] 根据所述动作前置响应信号调用所述服务路由器的调用接口,通知所述服务路由器删除所述服务的注册信息。
[0142] 在一种可选的方式中,所述程序510使所述处理器执行以下操作:
[0143] 对所述确认信息进行解析;
[0144] 采集所述服务的进程状态信息;
[0145] 根据解析后的所述确认信息以及所述进程状态信息指示所述服务器销毁容器。
[0146] 在一种可选的方式中,所述程序510使所述处理器执行以下操作:
[0147] 基于报文格式对所述确认信息进行解析,获取带有IP、端口以及容器编号的报文信息。
[0148] 在一种可选的方式中,所述程序510使所述处理器执行以下操作:
[0149] 根据所述确认信息以及所述服务的进程状态信息判断线程是否已释放;
[0150] 如果是,则指示所述服务器销毁容器;
[0151] 如果否,则是判断是否超时,如果是,则指示所述服务器销毁容器;如果否,则返回所述采集所述服务的进程状态信息的步骤。
[0152] 本发明实施例通过监听由服务端发出的动作前置响应信号;根据所述动作前置响应信号访问服务路由器,进行与服务相关的路由信息的变更,并返回确认信息;根据所述确认信息指示服务器销毁容器,能够实现应用在执行关闭操作时,主动通知注册中心自身的状态,提高了微服务应用的销毁完整性,规避了心跳检测的延迟真空期,大幅度降低业务感知的风险。
[0153] 在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0154] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0155] 类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0156] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0157] 此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0158] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。