CN103491134B - 一种监控容器的方法、装置与代理服务系统 - Google Patents
一种监控容器的方法、装置与代理服务系统 Download PDFInfo
- Publication number
- CN103491134B CN103491134B CN201310389310.2A CN201310389310A CN103491134B CN 103491134 B CN103491134 B CN 103491134B CN 201310389310 A CN201310389310 A CN 201310389310A CN 103491134 B CN103491134 B CN 103491134B
- Authority
- CN
- China
- Prior art keywords
- container
- proxy server
- monitoring
- containers
- unexpected message
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种监控容器的方法、装置与代理服务系统,方法包括:接收代理服务系统发送的第一容器的异常消息;根据异常消息,通过代理服务系统对第一容器进行重启处理或切换处理。根据本发明实施例的监控容器的方法、装置与代理服务系统,通过接收代理服务系统发送的第一容器的异常消息,并通过代理服务系统对第一容器进行重启或切换处理,实现了容器的高可用性,能够尽量保证第一容器当前处理的业务不会丢失、中断、失败或者无响应。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种监控容器的方法、装置与代理服务系统。
背景技术
Linux容器(container)是在Linux平台上实现的容器虚拟化技术,其用于提供隔离的用户态linux运行环境,而且有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。
高可用系统中配置有高可用软件,其具有高可用性(High Availability,HA),即该高可用系统可以在任何随机时刻需要和开始执行任务时,处于可工作或可使用状态。高可用系统可以设置在本地主机上,这样,高可用系统可以对本地主机上运行的应用资源状态进行健康监控,发现应用资源状态异常后采用某种策略恢复程序执行。通常高可用系统为达到通信的高效率、低延迟、高可靠性,会将其通信组件作为一个内核模块编译。
如何实现容器的高可用性成为亟需解决的问题。
发明内容
本发明实施例提供一种监控容器的方法、装置与代理服务系统,以实现容器的高可用性。
本发明第一方面提供一种监控容器的方法,包括:
接收代理服务系统发送的第一容器的异常消息;
根据所述异常消息,通过代理服务系统对所述第一容器进行重启处理或切换处理。
在第一种可能的实现方式中,根据第一方面,所述根据所述异常消息,对所述第一容器进行重启处理或切换处理,包括:
根据所述异常消息中第一容器的标识,检测所述第一容器的重启次数记录;
当所述第一容器的重启次数小于第一阈值时,通过所述代理服务系统向所述第一容器发送重启命令,以使所述第一容器重启,并继续处理当前正在处理的业务。
在第二种可能的实现方式中,根据第一种可能实现的方式,还包括:
当所述第一容器的重启次数大于或等于所述第一阈值时,判断所述第一容器的切换次数是否达到第二阈值;
当判断出所述第一容器的切换次数小于所述第二阈值时,通过所述代理服务系统向本地的第二容器发送启动命令,以使所述第二容器处理所述第一容器当前正在处理的业务。
在第三种可能的实现方式中,根据第二种可能实现的方式,还包括:
当判断出所述第一容器的切换次数大于或等于所述第二阈值时,判断所述第一容器的切换次数是否达到第三阈值;
当判断出所述第一容器的切换次数小于所述第三阈值时,通过所述代理服务系统向异地的第三容器发送启动命令,以使所述第三容器处理所述第一容器当前正在处理的业务。
在第四种可能的实现方式中,根据第三种可能实现的方式,还包括:
当判断出所述第一容器的切换次数大于或等于所述第三阈值时,发出警报,以使用户获知所述第一容器所在的高可用系统发生无法修复的故障。
在第五种可能的实现方式中,根据第一方面,所述接收代理服务系统发送的第一容器的异常消息包括:
接收所述代理服务服务系统中的代理服务客户端发送的异常消息,所述异常消息是所述代理服务器端向所述代理服务客户端发送的,所述代理服务器端还用于检测所述第一容器的运行状态,所述异常消息中包括代理服务器端的地址,所述第一容器的地址与所述代理服务器端的地址相同;
所述通过代理服务系统对所述第一容器进行重启处理或切换处理包括:
向所述代理服务器中的代理服务客户端发送处理信息,以使所述代理服务客户端通过所述代理服务器端向所述第一容器发送所述处理信息以进行所述第一容器的重启处理或切换处理;
其中,信息交互的方式为socket方式。
本发明第二方面提供一种监控容器的方法,包括:
检测第一容器的运行状态;
当发现所述第一容器的运行状态异常时,向高可用系统发送所述第一容器的异常消息;
接收所述高可用系统根据所述异常消息发送的重启命令或启动命令;
向所述第一容器发送所述重启命令,或者向本地的第二容器发送启动命令,或者向异地的第三容器发送启动命令。
在第一种可能的实现方式中,根据第二方面,通过socket方式与所述第一容器、所述代理服务客户端进行信息交互。
在第二种可能的实现方式中,根据第二方面或第一种可能实现的方式,所述异常消息中包括第一容器的地址,所述第一容器的地址与代理服务器系统中的代理服务器端的地址相同,所述代理服务器端设置在所述第一容器内。
本发明第三方面提供一种监控容器的装置,包括:
第一接收单元,用于接收代理服务系统发送的第一容器的异常消息;
处理单元,用于根据所述异常消息,通过代理服务系统对所述第一容器进行重启处理或切换处理。
在第一种可能的实现方式中,根据第三方面,所述处理单元具体用于:
根据所述异常消息中第一容器的标识,检测所述第一容器的重启次数记录;
当所述第一容器的重启次数小于第一阈值时,通过所述代理服务系统向所述第一容器发送重启命令,以使所述第一容器重启,并继续处理当前正在处理的业务。
在第二种可能的实现方式中,根据第一种可能实现的方式,所述处理单元还用于:
当所述第一容器的重启次数大于或等于所述第一阈值时,判断所述第一容器的切换次数是否达到第二阈值;
当判断出所述第一容器的切换次数小于所述第二阈值时,通过所述代理服务系统向本地的第二容器发送启动命令,以使所述第二容器处理所述第一容器当前正在处理的业务。
在第三种可能的实现方式中,根据第二种可能实现的方式,所述处理单元还用于:
当判断出所述第一容器的切换次数大于或等于所述第二阈值时,判断所述第一容器的切换次数是否达到第三阈值;
当判断出所述第一容器的切换次数小于所述第三阈值时,通过所述代理服务系统向异地的第三容器发送启动命令,以使所述第三容器处理所述第一容器当前正在处理的业务。
在第四种可能的实现方式中,根据第三方面,所述第一接收单元具体用于:
接收所述代理服务服务系统中的代理服务客户端发送的异常消息,所述异常消息是所述代理服务器端向所述代理服务客户端发送的,所述代理服务器端还用于检测所述第一容器的运行状态,所述异常消息中包括代理服务器端的地址,所述第一容器的地址与所述代理服务器端的地址相同;
所述处理单元具体用于:
向所述代理服务器中的代理服务客户端发送处理信息,以使所述代理服务客户端通过所述代理服务器端向所述第一容器发送所述处理信息以进行所述第一容器的重启处理或切换处理;
其中,信息交互的方式为socket方式。
在第四种可能的实现方式中,根据第三种可能实现的方式,所述处理单元还用于:
当判断出所述第一容器的切换次数大于或等于所述第三阈值时,发出警报,以使用户获知所述第一容器所在的高可用系统发生无法修复的故障。
本发明第四方面提供一种监控容器的装置,包括:
检测单元,用于检测第一容器的运行状态;
第一发送单元,用于当发现所述第一容器的运行状态异常时,向高可用系统发送所述第一容器的异常消息;
第二接收单元,用于接收所述高可用系统根据所述异常消息发送的重启命令或启动命令;
第二发送单元,用于向所述第一容器发送所述重启命令,或者向本地的第二容器发送启动命令,或者向异地的第三容器发送启动命令。
在第一种可能的实现方式中,根据第四方面,所述检测单元和所述第一发送单元设置在所述第一容器内,所述第一发送单元的地址与所述第一容器相同。
由上述技术方案可知,本发明提供的监控容器的方法、装置与代理服务系统,通过接收代理服务系统发送的第一容器的异常消息,并通过代理服务系统对第一容器进行重启或切换处理,实现了容器的高可用性,能够尽量保证第一容器当前处理的业务不会丢失、中断、失败或者无响应。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明一实施例的监控容器的方法的流程示意图;
图2为根据本发明另一实施例的监控容器的方法的流程示意图;
图3为根据本发明又一实施例的可用系统的结构示意图;
图4为根据本发明再一实施例的监控容器的方法的流程示意图;
图5为根据本发明另一实施例的监控容器的装置的结构示意图;
图6为根据本发明再一实施例的代理服务系统的结构示意图;
图7为根据本发明又一实施例的监控容器的装置的结构示意图;
图8为根据本发明再一实施例的代理服务系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供一种监控容器的方法,该监控容器的方法适用于高可用系统,该高可用系统具有高可用性。该高可用系统中包括代理服务系统、监控容器的装置和至少一个容器。本实施例的监控容器的方法的执行主体为监控容器的装置。
如图1所示,为本实施例的监控容器的方法的流程示意图。
步骤101,接收代理服务系统发送的第一容器的异常消息。
本实施例中的第一容器可以是Linux平台上的任意一个容器。代理服务系统用于监控Linux平台上的所有容器,并能够分别与监控容器的装置和容器进行通信,以使该监控容器的装置和容器之间通过该代理服务系统实现通信,具体可以通过socket方式进行通信。本实施例的代理服务系统能够同时识别容器发送的消息以及监控容器的装置发送的消息,即代理服务系统接收到第一容器发送的异常消息之后,经过处理生成监控容器的装置能够识别的异常消息,并向第一容器发送该异常消息。
当代理服务系统识别到第一容器的运行状态发生异常时,就向监控容器的装置发送异常消息,该异常消息中可以包括第一容器的标识信息和/或运行状态异常标识信息。
步骤102,根据异常消息,通过代理服务系统对第一容器进行重启处理或切换处理。
监控容器的装置接收到该异常消息之后,可以通过该异常消息中携带的第一容器的标识得知是哪一个容器的运行状态发生异常,还可以根据异常消息中携带的运行状态异常标识信息获知该第一容器发生了什么异常,运行状态异常标识信息与异常的对应关系具体可以根据实际需要进行设定。
监控容器的装置在接收到异常消息之后,可以根据预设规则,决定对第一容器进行重启处理或切换处理。
根据本实施例的监控容器的方法,通过接收代理服务系统发送的第一容器的异常消息,并通过代理服务系统对第一容器进行重启或切换处理,实现了容器的高可用性,能够尽量保证第一容器当前处理的业务不会丢失、中断、失败或者无响应。
实施例二
本实施例基于实施例一提供一种监控容器的方法。
如图2所示,为根据本实施例的监控容器的方法的流程示意图。
步骤200,接收代理服务系统发送的第一容器的异常消息。
该步骤与步骤101一致,在此不再赘述。
步骤201,根据异常消息中第一容器的标识,检测第一容器的重启次数记录,转为步骤202。
本实施例可以预先设置一参考表,该参考表中记录了每个容器的重启次数和切换次数,其中,重启次数指的是该容器重启的次数,切换次数指的是将该容器当前正在处理的业务切换至另外一个容器进行处理的次数。监控容器的装置需要获取某个容器的重启次数或切换次数时,可以通过查询该参考表进行获取。该参考表可以预设在监控容器的装置中,也可以单独进行存储,只要该监控容器的装置能够获取到即可。
步骤202,判断第一容器的重启次数是否小于第一阈值。当判断结果为是时,执行步骤203,否则,执行步骤204。
步骤203,通过代理服务系统向第一重启发送重启命令,以使第一容器重启,并继续处理当前正在处理的业务。
监控容器的装置如何继续处理当前正在处理的业务属于现有技术,在此不再赘述。
监控容器的装置查询到第一容器重启次数小于第一阈值时,有可能是使用该第一容器的用户通过不正当的操作修改了第一容器内的业务的软件的配置信息,还有可能是使用该第一容器的用户修改或者取消了容器的关键进程,此时可以通过重启第一容器来修复软件故障。其中,第一阈值可以根据实际需要进行设定,例如2次。
步骤204,判断第一容器的切换次数是否到达第二阈值。当判断结果为否时,执行步骤205,当判断结果为是时,执行步骤206。
步骤205,通过代理服务系统向本地的第二容器发送启动命令,以使第二容器处理第一容器当前正在处理的业务。
当判断出第一容器的重启次数已经达到第一阈值时,说明该第一容器已经出现无法修复的软件故障,此时需要切换另外一个容器来处理该第一容器当前正在处理的业务。本实施例中,先启用本地的第二容器来处理第一容器当前正在处理的业务。采用本地的第二容器来处理第一容器当前处理的业务,能够降低第一容器与第二容器之间进行切换操作时,第二容器加载数据的时间。具体地,第二容器可以继续处理第一容器当前正在处理的业务,即业务已经被第一容器已经处理的部分,第二容器可以不用重新处理,而是直接调用即可。具体第二容器如何继续处理第一容器当前正在处理的业务,属于现有技术,在此不再赘述。
其中,本地的第二容器指的是与第一容器处于相同硬件服务器上的容器,即在同一宿主机上的容器。
步骤206,判断第一容器的切换次数是否达到第三阈值,当判断结果为否时,转为步骤207,当判断结果为是时,转为步骤208。
步骤207,通过代理服务系统向异地的第三容器发送启动命令,以使第三容器处理第一容器当前正在处理的业务。
异地的第三容器如何处理第一容器当前正在处理的业务,属于现有技术,在此不再赘述。该异地的第三容器指的是在不同硬件服务器上的容器,即在不同宿主机上的容器。
步骤208,发出警报,以使用户获知第一容器所在的高可用系统发生无法修复的故障。
监控容器的装置发出的警报,可以是声音或者高可用系统上的屏幕提示,以提示高可用系统已经出现无法修复的故障,该故障可以是软件故障,也可以是硬件故障。
能够想象到的是,当监控容器的装置向第一容器发送时,相应地,需要更新参考表中该第一容器对应的重启次数,同理,当监控容器的装置发出切换命令时,相应的,也需要更新参考表中第一容器对应的切换次数。
根据本实施例的监控容器的方法,在接收到代理服务系统发送的第一容器的运行状态发生异常时,采用重启或切换策略,以尽量保证第一容器当前正在处理的业务不会丢失。
实施例三
本实施例基于上述实施例提供一种具体的监控容器的方法。
如图3所示,为一高可用系统的结构示意图。
本实施例的代理服务系统301通过socket方式分别与第一容器302和监控容器的装置303通信。本实施例中的代理服务系统301包括代理服务客户端(socket client)310和代理服务器端(socket server)320,具体地,代理服务器端320可以设置在第一容器302内,与第一容器302具有相同的地址,代理服务器客户端310可以设置在第一容器302外面。如图3所示,当代理服务器端320可以设置在第一容器302内时,代理服务客户端310可以通过读取/etc/hosts文件等方式获取代理服务器端320的地址,并将该地址作为第一容器302的地址。
代理服务系统301检测第一容器内302的运行状态,当发现第一容器302运行状态出现异常时,向监控容器的装置303发出异常消息。具体地,可以由代理服务器端320监测第一容器302的运行状态,当发现第一容器302运行状态发生异常时,向代理服务客户端310发出异常消息,然后由代理服务客户端310向监控容器的装置303转发该异常消息,其中,异常消息中可以包括代理服务器端320的地址,即第一容器302的地址。具体来说,当代理服务系统301发现第一容器302的信息无法解析时,可以判断该第一容器302出现异常,可以向监控容器的装置303发出异常消息。
监控容器的装置303接收到代理服务系统301发送的异常消息之后,对该异常消息进行解析,以获取是哪个容器发生了异常。接着,监控容器的装置303采用相应的策略,并向代理服务系统301发送处理信息。代理服务系统301接收到该处理信息后,进行相应的处理,例如通过处理信息中的携带的第一容器302的地址找到相应的第一容器302,即找到相应的代理服务器端320,然后将处理信息发送给第一容器302或者向其他容器发送。由第一容器302或其它容器执行相应的重启操作或切换操作。具体地,监控容器的装置303向代理服务客户端310发送处理信息,并通过代理服务器端320转发向第一容器302该处理信息。
实施例四
本实施例提供一种监控容器的方法,该监控容器的方法适用于高可用系统,该高可用系统具有高可用性。该高可用系统中包括代理服务系统、监控容器的装置和至少一个容器。本实施例的监控容器的方法的执行主体为代理服务系统。该代理服务器系统中可以包括代理服务器端和代理服务客户端,其中,代理服务器端设置在第一容器内,用于检测所述第一容器的运行状态,该代理服务器端的地址可以与第一容器的地址相同。
如图4所示,为根据本实施例的监控容器的方法的流程示意图。
步骤401,检测第一容器的运行状态。
代理服务系统可以周期性的检测第一容器的运行状态,具体周期可以根据实际需要进行设定。
步骤402,当发现第一容器的运行状态异常时,向监控容器的装置发送第一容器的异常消息。
该异常消息中可以包括第一容器的标识信息和/或运行状态异常标识信息。该异常消息中还可以包括第一容器的地址。
步骤403,接收监控容器的装置根据异常消息发送的重启命令或启动命令。
代理服务器系统接收到重启命令或启动命令之后,可以根据重启命令或启动命令中所携带的容器的标识判断向哪个容器发送重启命令或启动命令。
步骤404,向第一容器发送重启命令,或者向本地的第二容器发送启动命令,或者向异地的第三容器发送启动命令。
监控容器的装置接收到该异常消息之后,可以通过该异常消息中携带的第一容器的标识得知是哪一个容器的运行状态发生异常,还可以根据异常消息中携带的运行状态异常标识信息获知该第一容器发生了什么异常,运行状态异常标识信息与异常的对应关系具体可以根据实际需要进行设定。
监控容器的装置在接收到异常消息之后,可以根据预设规则,决定对第一容器进行重启处理或切换处理。具体是代理服务系统是向第一容器发送重启命令,还是向本地的第二容器发送启动命令,还是向异地的第三容器发送启动命令,可以根据监控容器的装置发送的重启命令或启动命令进行判断。
本实施例的通信方式可以采用socket方式,即通过socket方式与第一容器、代理服务客户端进行信息交互。
根据本实施例的监控容器的方法,通过代理服务系统检测第一容器的异常消息,并对第一容器进行重启或切换处理,实现了容器的高可用性,能够尽量保证第一容器当前处理的业务不会丢失、中断、失败或者无响应。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
实施例五
本实施例提供一种监控容器的装置,用于执行实施例一的监控容器的方法。
如图5所示,为根据本实施例的监控容器的装置的结构示意图。该监控容器的装置包括第一接收单元501和处理单元502。
其中,第一接收单元501用于接收代理服务系统发送的第一容器的异常消息;处理单元502用于根据第一接收单元501接收到的异常消息,通过代理服务系统对第一容器进行重启处理或切换处理。
该监控容器的装置的具体操作方式与实施例一一致,在此不再赘述。
根据本实施例的监控容器的装置,通过接收代理服务系统发送的第一容器的异常消息,并通过代理服务系统对第一容器进行重启或切换处理,实现了容器的高可用性,能够尽量保证第一容器当前处理的业务不会丢失、中断、失败或者无响应。
实施例六
本实施例基于实施例五提供一种监控容器的装置。
本实施例主要对监控容器的装置中的处理单元做进一步描述。
本实施例的监控容器的装置中的处理单元502可以具体用于:
根据异常消息中第一容器的标识,检测第一容器的重启次数记录;
当第一容器的重启次数小于第一阈值时,通过代理服务系统向第一容器发送重启命令,以使第一容器重启,并继续处理当前正在处理的业务。
可选地,本实施例的处理单元502还可用于:
当第一容器的重启次数大于或等于第一阈值时,判断第一容器的切换次数是否达到第二阈值;
当判断出第一容器的切换次数小于第二阈值时,通过代理服务系统向本地的第二容器发送启动命令,以使第二容器处理第一容器当前正在处理的业务。
可选地,本实施例的处理单元502还可以用于:
当判断出第一容器的切换次数大于或等于第二阈值时,判断第一容器的切换次数是否达到第三阈值;
当判断出第一容器的切换次数小于第三阈值时,通过代理服务系统向异地的第三容器发送启动命令,以使第三容器处理第一容器当前正在处理的业务。
可选地,本实施例的处理单元502还可以用于:
当判断出第一容器的切换次数大于或等于第三阈值时,发出警报,以使用户获知第一容器所在的高可用系统发生无法修复的故障。
该实施例的监控容器的装置的具体操作方法与实施例二一致,在此不再赘述。
根据本实施例的监控容器的装置,在接收到代理服务系统发送的第一容器的运行状态发生异常时,采用重启或切换策略,以尽量保证第一容器当前正在处理的业务不会丢失。
可选地,所述第一接收单元具体用于:
接收所述代理服务服务系统中的代理服务客户端发送的异常消息,所述异常消息是所述代理服务器端向所述代理服务客户端发送的,所述代理服务器端还用于检测所述第一容器的运行状态,所述异常消息中包括代理服务器端的地址,所述第一容器的地址与所述代理服务器端的地址相同;
所述处理单元具体用于:
向所述代理服务器中的代理服务客户端发送处理信息,以使所述代理服务客户端通过所述代理服务器端向所述第一容器发送所述处理信息以进行所述第一容器的重启处理或切换处理;
其中,信息交互的方式为socket方式。
其具体操作方式与实施例三相同,在此不再赘述。
实施例七
本实施例提供一种代理服务系统,该代理服务系统用于执行实施例四的监控容器的方法。
如图6所示,为根据本实施例的代理服务系统的结构示意图。该代理服务系统包括检测单元601、第一发送单元602、第二接收单元603和第二发送单元604。
其中,检测单元601用于检测第一容器的运行状态;第一发送单元602用于当检测单元601发现所述第一容器的运行状态异常时,向监控容器的装置发送所述第一容器的异常消息;第二接收单元603用于接收所述监控容器的装置根据所述第一发送单元602发送的异常消息发送的重启命令或启动命令;第二发送单元604用于向所述第一容器发送第二接收单元603接收到的所述重启命令,或者向本地的第二容器发送第二接收单元603接收到的启动命令,或者向异地的第三容器发送第二接收单元603接收到的启动命令。
本实施例的代理服务系统的具体操作方法与实施例四一致,在此不再赘述。
其中,代理服务系统可以通过socket方式与第一容器、监控容器的装置进行信息交互。
根据本实施例的代理服务系统,通过检测第一容器,并对第一容器转发处理信息以使第一容器进行重启或切换处理,实现了容器的高可用性,能够尽量保证第一容器当前处理的业务不会丢失、中断、失败或者无响应。
可选地,本实施例中的检测单元601和第一发送单元602设置在第一容器内,第一发送单元602的地址与第一容器相同。当然,检测单元601的地址也可以与第一容器相同。
实施例八
本实施例提供另一种监控容器的装置,用于执行上述实施例的监控容器的方法。
如图7所示,为根据本实施例的监控容器的装置的结构示意图。本实施例的监控容器的装置700包括至少一个第一处理器701、第一通信总线702、第一存储器703以及至少一个第一通信接口704。
其中,第一通信总线702用于实现上述组件之间的连接并通信,第一通信接口704用于与网络设备连接并通信。该总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component,外部设备互连)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准体系结构)总线等。总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。
其中,第一存储器703用于存储可执行程序代码,其中,第一处理器701通过读取第一存储器703中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于:
接收代理服务系统发送的第一容器的异常消息;
根据异常消息,通过代理服务系统对第一容器进行重启处理或切换处理。
可选地,第一处理器701通过读取第一存储器703中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于根据异常消息,对第一容器进行重启处理或切换处理时,具体可以是:
根据异常消息中第一容器的标识,检测第一容器的重启次数记录;
当第一容器的重启次数小于第一阈值时,通过代理服务系统向第一容器发送重启命令,以使第一容器重启,并继续处理当前正在处理的业务。
可选地,第一处理器701还可以通过读取第一存储器703中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于:
当第一容器的重启次数大于或等于第一阈值时,判断第一容器的切换次数是否达到第二阈值;
当判断出第一容器的切换次数小于第二阈值时,通过代理服务系统向本地的第二容器发送启动命令,以使第二容器处理第一容器当前正在处理的业务。
可选地,第一处理器701还可以通过读取第一存储器703中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于:
当判断出第一容器的切换次数大于或等于第二阈值时,判断第一容器的切换次数是否达到第三阈值;
当判断出第一容器的切换次数小于第三阈值时,通过代理服务系统向异地的第三容器发送启动命令,以使第三容器处理第一容器当前正在处理的业务。
可选地,第一处理器701还可以通过读取第一存储器703中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于:
当判断出第一容器的切换次数大于或等于第三阈值时,发出警报,以使用户获知第一容器所在的高可用系统发生无法修复的故障。
可选地,第一处理器701过读取第一存储器703中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于接收代理服务系统发送的第一容器的异常消息时,具体可以是:
接收所述代理服务服务系统中的代理服务客户端发送的异常消息,所述异常消息是所述代理服务器端向所述代理服务客户端发送的,所述代理服务器端还用于检测所述第一容器的运行状态,所述异常消息中包括代理服务器端的地址,所述第一容器的地址与所述代理服务器端的地址相同;
所述通过代理服务系统对所述第一容器进行重启处理或切换处理包括:
向所述代理服务器中的代理服务客户端发送处理信息,以使所述代理服务客户端通过所述代理服务器端向所述第一容器发送所述处理信息以进行所述第一容器的重启处理或切换处理;
其中,信息交互的方式为socket方式。
根据本实施例的监控容器的装置700,通过接收代理服务系统发送的第一容器的异常消息,并通过代理服务系统对第一容器进行重启或切换处理,实现了容器的高可用性,能够尽量保证第一容器当前处理的业务不会丢失、中断、失败或者无响应。
实施例九
本实施例提供另一种代理服务系统,以用于执行上述监控容器的方法。
如图8所示,为根据本实施例的代理服务系统的结构示意图。本实施例的代理服务系统800包括至少一个第二处理器801、第二通信总线802、第二存储器803以及至少一个第二通信接口804。
其中,第二通信总线802用于实现上述组件之间的连接并通信,第二通信接口804用于与网络设备连接并通信。该总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component,外部设备互连)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准体系结构)总线等。总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。
其中,第二存储器803用于存储可执行程序代码,其中,第二处理器801通过读取第二存储器803中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于:
检测第一容器的运行状态;
当发现所述第一容器的运行状态异常时,向监控容器的装置发送所述第一容器的异常消息;
接收所述监控容器的装置根据所述异常消息发送的重启命令或启动命令;
向所述第一容器发送所述重启命令,或者向本地的第二容器发送启动命令,或者向异地的第三容器发送启动命令。
可选地,异常消息中可以包括第一容器的地址,所述第一容器的地址与代理服务器系统中的代理服务器端的地址相同,所述代理服务器端设置在所述第一容器内。
根据本实施例的代理服务器系统800,通过检测第一容器,并对第一容器转发处理信息以使第一容器进行重启或切换处理,实现了容器的高可用性,能够尽量保证第一容器当前处理的业务不会丢失、中断、失败或者无响应。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (13)
1.一种监控容器的方法,其特征在于,包括:
接收代理服务系统发送的第一容器的异常消息;
根据所述异常消息,通过代理服务系统对所述第一容器进行重启处理或切换处理;
所述接收代理服务系统发送的第一容器的异常消息包括:
接收所述代理服务服务系统中的代理服务客户端发送的异常消息,所述异常消息是所述代理服务器端向所述代理服务客户端发送的,所述代理服务器端还用于检测所述第一容器的运行状态,所述异常消息中包括代理服务器端的地址,所述第一容器的地址与所述代理服务器端的地址相同;
所述通过代理服务系统对所述第一容器进行重启处理或切换处理包括:
向所述代理服务器中的代理服务客户端发送处理信息,以使所述代理服务客户端通过所述代理服务器端向所述第一容器发送所述处理信息以进行所述第一容器的重启处理或切换处理;
其中,信息交互的方式为socket方式。
2.根据权利要求1所述的监控容器的方法,其特征在于,所述根据所述异常消息,对所述第一容器进行重启处理或切换处理,包括:
根据所述异常消息中第一容器的标识,检测所述第一容器的重启次数记录;
当所述第一容器的重启次数小于第一阈值时,通过所述代理服务系统向所述第一容器发送重启命令,以使所述第一容器重启,并继续处理当前正在处理的业务。
3.根据权利要求2所述的监控容器的方法,其特征在于,还包括:
当所述第一容器的重启次数大于或等于所述第一阈值时,判断所述第一容器的切换次数是否达到第二阈值;
当判断出所述第一容器的切换次数小于所述第二阈值时,通过所述代理服务系统向本地的第二容器发送启动命令,以使所述第二容器处理所述第一容器当前正在处理的业务。
4.根据权利要求3所述的监控容器的方法,其特征在于,还包括:
当判断出所述第一容器的切换次数大于或等于所述第二阈值时,判断所 述第一容器的切换次数是否达到第三阈值;
当判断出所述第一容器的切换次数小于所述第三阈值时,通过所述代理服务系统向异地的第三容器发送启动命令,以使所述第三容器处理所述第一容器当前正在处理的业务。
5.根据权利要求4所述的监控容器的方法,其特征在于,还包括:
当判断出所述第一容器的切换次数大于或等于所述第三阈值时,发出警报,以使用户获知所述第一容器所在的高可用系统发生无法修复的故障。
6.一种监控容器的方法,其特征在于,包括:
检测第一容器的运行状态;
当发现所述第一容器的运行状态异常时,向监控容器的装置发送所述第一容器的异常消息;
接收所述监控容器的装置根据所述异常消息发送的重启命令或启动命令;
向所述第一容器发送所述重启命令,或者向本地的第二容器发送启动命令,或者向异地的第三容器发送启动命令;
所述异常消息中包括第一容器的地址,所述第一容器的地址与代理服务器系统中的代理服务器端的地址相同,所述代理服务器端设置在所述第一容器内。
7.根据权利要求6所述的监控容器的方法,其特征在于,通过socket方式与所述第一容器、所述监控容器的装置进行信息交互。
8.一种监控容器的装置,其特征在于,包括:
第一接收单元,用于接收代理服务系统发送的第一容器的异常消息;
处理单元,用于根据所述异常消息,通过代理服务系统对所述第一容器进行重启处理或切换处理;
所述第一接收单元具体用于:
接收所述代理服务服务系统中的代理服务客户端发送的异常消息,所述异常消息是所述代理服务器端向所述代理服务客户端发送的,所述代理服务器端还用于检测所述第一容器的运行状态,所述异常消息中包括代理服务器端的地址,所述第一容器的地址与所述代理服务器端的地址相同;
所述处理单元具体用于:
向所述代理服务器中的代理服务客户端发送处理信息,以使所述代理服务客户端通过所述代理服务器端向所述第一容器发送所述处理信息以进行所述第一容器的重启处理或切换处理;
其中,信息交互的方式为socket方式。
9.根据权利要求8所述的监控容器的装置,其特征在于,所述处理单元具体用于:
根据所述异常消息中第一容器的标识,检测所述第一容器的重启次数记录;
当所述第一容器的重启次数小于第一阈值时,通过所述代理服务系统向所述第一容器发送重启命令,以使所述第一容器重启,并继续处理当前正在处理的业务。
10.根据权利要求9所述的监控容器的装置,其特征在于,所述处理单元还用于:
当所述第一容器的重启次数大于或等于所述第一阈值时,判断所述第一容器的切换次数是否达到第二阈值;
当判断出所述第一容器的切换次数小于所述第二阈值时,通过所述代理服务系统向本地的第二容器发送启动命令,以使所述第二容器处理所述第一容器当前正在处理的业务。
11.根据权利要求10所述的监控容器的装置,其特征在于,所述处理单元还用于:
当判断出所述第一容器的切换次数大于或等于所述第二阈值时,判断所述第一容器的切换次数是否达到第三阈值;
当判断出所述第一容器的切换次数小于所述第三阈值时,通过所述代理服务系统向异地的第三容器发送启动命令,以使所述第三容器处理所述第一容器当前正在处理的业务。
12.根据权利要求11所述的监控容器的装置,其特征在于,所述处理单元还用于:
当判断出所述第一容器的切换次数大于或等于所述第三阈值时,发出警报,以使用户获知所述第一容器所在的高可用系统发生无法修复的故障。
13.一种代理服务系统,其特征在于,包括:
检测单元,用于检测第一容器的运行状态;
第一发送单元,用于当发现所述第一容器的运行状态异常时,向监控容器的装置发送所述第一容器的异常消息;
第二接收单元,用于接收所述监控容器的装置根据所述异常消息发送的重启命令或启动命令;
第二发送单元,用于向所述第一容器发送所述重启命令,或者向本地的第二容器发送启动命令,或者向异地的第三容器发送启动命令;
所述检测单元和所述第一发送单元设置在所述第一容器内,所述第一发送单元的地址与所述第一容器相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310389310.2A CN103491134B (zh) | 2013-08-30 | 2013-08-30 | 一种监控容器的方法、装置与代理服务系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310389310.2A CN103491134B (zh) | 2013-08-30 | 2013-08-30 | 一种监控容器的方法、装置与代理服务系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103491134A CN103491134A (zh) | 2014-01-01 |
CN103491134B true CN103491134B (zh) | 2016-12-28 |
Family
ID=49831087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310389310.2A Active CN103491134B (zh) | 2013-08-30 | 2013-08-30 | 一种监控容器的方法、装置与代理服务系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103491134B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484167B (zh) * | 2014-12-05 | 2018-03-09 | 广州华多网络科技有限公司 | 任务处理方法及装置 |
CN104915285B (zh) * | 2015-06-30 | 2018-08-14 | 北京奇虎科技有限公司 | 一种容器进程监控方法、装置及系统 |
CN104915263B (zh) * | 2015-06-30 | 2019-04-19 | 北京奇虎科技有限公司 | 基于容器技术的进程故障处理方法及装置 |
CN105072185B (zh) * | 2015-08-12 | 2018-04-06 | 上海斐讯数据通信技术有限公司 | 一种tr069远程监控方法、系统和通讯设备 |
CN106445634A (zh) * | 2016-09-22 | 2017-02-22 | 乐视控股(北京)有限公司 | 一种容器的监控方法及装置 |
CN107391313A (zh) * | 2017-07-31 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种容器的运行方法及装置 |
CN108718253A (zh) * | 2018-05-11 | 2018-10-30 | 新华三技术有限公司 | 一种问题定位方法及装置 |
US11681278B2 (en) * | 2019-06-19 | 2023-06-20 | Honeywell International Inc. | High availability for container based control execution |
CN112148420B (zh) * | 2019-06-28 | 2024-04-02 | 杭州海康威视数字技术股份有限公司 | 基于容器技术的异常任务处理方法、服务器及云平台 |
CN113504969A (zh) * | 2021-07-07 | 2021-10-15 | 北京汇钧科技有限公司 | 容器事件告警的方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102707990A (zh) * | 2012-05-14 | 2012-10-03 | 华为技术有限公司 | 基于容器的处理方法、装置和系统 |
CN102708018A (zh) * | 2012-04-20 | 2012-10-03 | 华为技术有限公司 | 一种异常处理方法及系统、代理设备与控制装置 |
CN102713854A (zh) * | 2012-03-15 | 2012-10-03 | 华为技术有限公司 | 一种容器状态的保存和恢复的方法及装置 |
-
2013
- 2013-08-30 CN CN201310389310.2A patent/CN103491134B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102713854A (zh) * | 2012-03-15 | 2012-10-03 | 华为技术有限公司 | 一种容器状态的保存和恢复的方法及装置 |
CN102708018A (zh) * | 2012-04-20 | 2012-10-03 | 华为技术有限公司 | 一种异常处理方法及系统、代理设备与控制装置 |
CN102707990A (zh) * | 2012-05-14 | 2012-10-03 | 华为技术有限公司 | 基于容器的处理方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103491134A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103491134B (zh) | 一种监控容器的方法、装置与代理服务系统 | |
US10095576B2 (en) | Anomaly recovery method for virtual machine in distributed environment | |
CN109558282B (zh) | 一种pcie链路检测方法、系统及电子设备和存储介质 | |
CN100582799C (zh) | 电子设备诊断方法和系统 | |
CN103458086B (zh) | 一种智能手机及其故障检测方法 | |
CN106789306B (zh) | 通信设备软件故障检测收集恢复方法和系统 | |
CN103201724A (zh) | 在高可用性虚拟机环境中提供高可用性应用程序 | |
CN101364193A (zh) | 自动恢复bios的方法以及使用该方法的电脑与系统 | |
CN104915263A (zh) | 基于容器技术的进程故障处理方法及装置 | |
CN107729190B (zh) | 一种io路径故障转移处理方法和系统 | |
CN112199240B (zh) | 一种节点故障时进行节点切换的方法及相关设备 | |
CN103559124A (zh) | 故障快速检测方法及装置 | |
CN111212451A (zh) | 一种切换网络传输通道的方法和装置 | |
CN107070747A (zh) | 一种在网卡绑定模式下自动化测试网卡网络连接稳定性的方法 | |
EP3035227B1 (en) | Method and device for monitoring data integrity in shared memory environment | |
CN108954702B (zh) | 一种空调的控制方法、装置、空调和存储介质 | |
US20100085871A1 (en) | Resource leak recovery in a multi-node computer system | |
JP2007299213A (ja) | Raid制御装置および障害監視方法 | |
US7996707B2 (en) | Method to recover from ungrouped logical path failures | |
US8537662B2 (en) | Global detection of resource leaks in a multi-node computer system | |
CN104484260A (zh) | 一种基于GJB289总线接口SoC的仿真监控电路 | |
US20230195552A1 (en) | Retrieving diagnostic information from a pci express endpoint | |
CN109358982A (zh) | 硬盘自愈装置、方法以及硬盘 | |
US9405629B2 (en) | Information processing system, method for controlling information processing system, and storage medium | |
CN110247821B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |