容器启动方法、装置、存储介质及计算机设备与流程

文档序号:23669131发布日期:2021-01-15 14:09阅读:75来源:国知局
本发明涉及信息
技术领域
:,特别是涉及一种容器启动方法、装置、存储介质及计算机设备。
背景技术
::容器节点pod是可以由kubernetes部署和管理的最小单元,一个容器节点通常可以容纳多个容器,如业务容器和代理容器。目前,kubernets中的容器节点启动时,容器节点中的多个容器会同时启动,即代理容器和业务容器同时启动。然而,由于业务容器启动时会通过对外访问的方式进行注册,以此完成业务容器的启动,且在对外进行访问时需要利用代理容器实现对外的访问,如果代理容器未启动成功,则会导致业务容器无法对外进行访问,从而导致业务容器启动失败。技术实现要素:有鉴于此,本发明提供一种容器启动方法、装置、存储介质及计算机设备,主要目的在于能够在容器节点启动时,保证代理容器启动成功后再启动业务容器,从而使业务容器能够对外进行访问,确保业务容器启动成功。依据本发明一个方面,提供了一种容器启动方法,包括:响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求;接收所述服务请求对应的反馈信息,根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功;若所述代理容器启动成功,则启动所述业务容器。可选地,在所述根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功之后,所述方法还包括:若所述代理容器启动失败,则等待第一预设时长后,控制所述业务容器重新对外发送服务请求,并接收所述服务请求对应的反馈信息,直至根据所述服务请求对应的反馈信息,确定所述代理容器启动成功,启动所述业务容器。可选地,所述直至根据所述服务请求对应的反馈信息,确定所述代理容器启动成功,启动所述业务容器,包括:若控制所述业务容器重新对外发送服务请求的重试次数超过预设重试次数,则确定所述代理容器启动失败,向业务人员终端发送报警信息;若控制所述业务容器重新对外发送服务请求的重试次数未超过预设重试次数,且根据所述服务请求对应的反馈信息,确定所述代理容器启动成功,则启动所述业务容器。可选地,所述控制所述容器节点中的业务容器对外发送服务请求,包括:控制所述业务容器对外发送服务请求,并利用预设流量控制工具拦截所述服务请求,将所述服务请求转发给所述代理容器,以便所述代理容器转发所述服务请求。可选地,所述根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功,包括:若所述反馈信息为服务请求成功,则确定所述代理容器在业务容器启动之前启动成功;若所述反馈信息为服务请求失败,则确定所述代理容器在业务容器启动之前启动失败。可选地,所述方法还包括:响应于接收到容器节点的销毁指令,销毁所述容器节点中的业务容器,并利用所述容器节点中代理容器预先设置的进程检测功能检测所述业务容器中是否还存在业务进程;若所述业务容器中不存在所述业务进程,则销毁所述代理容器。可选地,在所述利用所述容器节点中代理容器预先设置的进程检测功能检测所述业务容器中是否还存在业务进程之后,所述方法还包括:若所述业务容器中存在业务进程,则等待第二预设时长后,利用所述代理容器预先设置的进程检测功能重新检测所述业务容器中是否还存在业务进程,直至所述业务容器中不存在业务进程,销毁所述代理容器。可选地,所述利用所述容器节点中代理容器预先设置的进程检测功能检测所述业务容器中是否还存在业务进程,包括:利用所述代理容器预先设置的进程检测功能检测所述业务容器中是否存在服务注册销毁进程;若不存在所述服务注册销毁进程,则利用所述代理容器预先设置的进程检测功能检测所述业务容器中是否存在消息队列销毁进程;所述若所述业务容器中不存在所述业务进程,则销毁所述代理容器,包括:若所述业务容器中不存在所述消息队列销毁进程,则销毁所述代理容器。依据本发明第二个方面,提供了一种容器启动装置,包括:第一启动单元,用于响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求;判断单元,用于接收所述服务请求对应的反馈信息,根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功;第二启动单元,用于若所述代理容器启动成功,则启动所述业务容器。可选地,所述第二启动单元,还用于若所述代理容器启动失败,则等待第一预设时长后,控制所述业务容器重新对外发送服务请求,并接收所述服务请求对应的反馈信息,直至根据所述服务请求对应的反馈信息,确定所述代理容器启动成功,启动所述业务容器。可选地,所述第二启动单元,包括:发送模块和启动模块,所述发送模块,可以用于若控制所述业务容器重新对外发送服务请求的重试次数超过预设重试次数,则确定所述代理容器启动失败,向业务人员终端发送报警信息;所述启动模块,可以用于若控制所述业务容器重新对外发送服务请求的重试次数未超过预设重试次数,且根据所述服务请求对应的反馈信息,确定所述代理容器启动成功,则启动所述业务容器。可选地,所述第一启动单元,具体用于控制所述业务容器对外发送服务请求,并利用预设流量控制工具拦截所述服务请求,将所述服务请求转发给所述代理容器,以便所述代理容器转发所述服务请求。可选地,所述判断单元,包括:第一确定模块和第二确定模块,所述第一确定模块,用于若所述反馈信息为服务请求成功,则确定所述代理容器在业务容器启动之前启动成功;所述第二确定模块,用于若所述反馈信息为服务请求失败,则确定所述代理容器在业务容器启动之前启动失败。可选地,所述装置还包括:第一销毁单元和第二销毁单元,所述第一销毁单元,用于响应于接收到容器节点的销毁指令,销毁所述容器节点中的业务容器,并利用所述容器节点中代理容器预先设置的进程检测功能检测所述业务容器中是否还存在业务进程;所述第二销毁单元,用于若所述业务容器中不存在所述业务进程,则销毁所述代理容器。可选地,所述第二销毁单元,还用于若所述业务容器中存在业务进程,则等待第二预设时长后,利用所述代理容器预先设置的进程检测功能重新检测所述业务容器中是否还存在业务进程,直至所述业务容器中不存在业务进程,销毁所述代理容器。可选地,所述第一销毁单元,包括:第一检测模块和第二检测模块,所述第一检测模块,用于利用所述代理容器预先设置的进程检测功能检测所述业务容器中是否存在服务注册销毁进程;所述第二检测模块,用于若不存在所述服务注册销毁进程,则利用所述代理容器预先设置的进程检测功能检测所述业务容器中是否存在消息队列销毁进程;所述第二销毁单元,具体用于若所述业务容器中不存在所述消息队列销毁进程,则销毁所述代理容器。根据本发明的第三个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求;接收所述服务请求对应的反馈信息,根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功;若所述代理容器启动成功,则启动所述业务容器。根据本发明的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求;接收所述服务请求对应的反馈信息,根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功;若所述代理容器启动成功,则启动所述业务容器。本发明提供了一种容器启动方法、装置、存储介质及计算机设备,与目前容器节点启动时代理容器与业务容器同时启动的方式相比,本发明能够响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求;与此同时,接收所述服务请求对应的反馈信息,并根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功;若所述代理容器启动成功,则启动所述业务容器,从而能够在启动代理容器的同时,控制业务容器对外发送服务请求,并根据服务请求对应的反馈信息,判断代理容器是否启动成功,如果代理容器启动成功,再启动业务容器,由此能够保证业务容器在代理容器启动成功之后再启动,以便业务容器能够利用代理容器对外进行访问,确保业务容器启动成功。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。附图说明构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:图1示出了本发明实施例提供的一种容器启动方法流程图;图2示出了本发明实施例提供的一种容器销毁方法流程图;图3示出了本发明实施例提供的一种容器启动装置的结构示意图;图4示出了本发明实施例提供的另一种容器启动装置的结构示意图;图5示出了本发明实施例提供的一种计算机设备的实体结构示意图。具体实施方式现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。本发明实施例提供了一种信息推荐方法,如图1所示,该方法包括:101、响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求。其中,容器节点为在kubernetes框架下基于sidercar模式的pod容器节点,该pod容器节点中通常包括多个容器,如业务容器businesscontainer和代理容器proxycontainer,为了保护业务容器,业务容器通常不直接对外进行访问,而是将代理容器作为中间层,通过代理容器实现业务容器的对外访问,为了克服现有技术中同时启动pod容器节点中的业务容器和代理容器的缺陷,本发明实施例能够让容器节点中的业务容器和代理容器按照期望顺序进行启动,具体地,在启动pod容器节点时,直接启动代理容器,而在启动业务容器之前,先控制业务容器对外进行访问,并根据反馈信息判断代理容器是否启动成功,如果代理容器启动成功,则再启动业务容器,由此能够保证业务容器在代理容器启动成功之后进行启动,以便后续业务容器能够利用代理容器实现对外的访问,进而通过对外访问成功启动业务容器。本发明实施例主要适用于容器节点中业务容器和代理容器的顺序启动,本发明实施的执行主体为能够控制业务容器和代理容器顺序启动的装置或设备,具体可以设置于服务器或者客户端一侧。具体地,在软件发版上线或者代码更新后,会重新启动服务的容器节点pod,当接收到容器节点pod的启动指令时,为了保证代理容器第一时间完成启动,直接调用代理容器启动脚本中的启动命令来启动代理容器,而对于业务容器,并不直接执行业务容器启动脚本中的启动命令,而是先控制业务容器对外进行访问,具体可以控制业务容器通过调用kubernetesservice对外发送服务请求,由于业务容器对外进行访问时,会利用启动成功的代理容器,如果业务容器对外访问成功,则说明代理容器已经启动成功;如果业务容器没有对外访问成功,则说明代理容器可能启动失败,由此可以根据代理容器对外发送的服务请求的反馈结果,判定代理容器是否启动成功。进一步地,针对业务容器调用kubernetesservice对外发送服务请求的具体过程,所述控制所述容器节点中的业务容器对外发送服务请求,包括:控制所述业务容器对外发送服务请求,并利用预设流量控制工具拦截所述服务请求,将所述服务请求转发给所述代理容器,以便所述代理容器转发所述服务请求。具体地,当接收到容器节点的启动指令时,可以控制业务容器对外请求一个任意的服务,例如,控制业务容器对外请求某服务curlhttp://micrometer-hostname-allocator.devops/hostname,之后流量控制工具iptable将该服务请求拦截,并根据iptable中的路由规则将该服务请求转发至业务容器对应的代理容器,由代理容器对外请求服务,如果服务请求成功,则会反馈200,说明此时代理容器已经启动成功,否则会反馈服务请求超时的反馈信息,即服务请求失败,说明此时代理容器很有可能启动失败。102、接收所述服务请求对应的反馈信息,根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功。对于本发明实施例,在业务容器对外发送服务请求之后,如果该服务请求对应的反馈信息为200,则说明业务容器对外访问成功;如果该服务请求对应的反馈信息为服务请求超时,则说明业务容器对外访问失败,此外,为了根据服务请求对应的反馈信息验证代理容器是否在业务容器启动之前已经启动成功,步骤102具体包括:若所述反馈信息为服务请求成功,则确定所述代理容器在业务容器启动之前启动成功;若所述反馈信息为服务请求失败,则确定所述代理容器在业务容器启动之前启动失败。进一步地,如果确定代理容器启动成功,则启动业务容器;如果确定代理容器启动失败,说明业务容器无法实现对外访问,进而无法实现启动,此时需要向相关负责人员终端发送报警信息。进一步地,如果业务容器对外的服务请求失败,有可能是因为代理容器启动失败,也有可能是因为服务网络问题从而导致服务请求失败,因此此时可以尝试启动业务容器,业务容器启动时也会通过调用kubernetesservice,利用代理容器实现对外的服务注册和消息队列的注册,如果业务容器启动成功,说明之前的服务请求失败是因为服务网络原因导致的,代理容器已经启动成功;如果业务容器无法成功启动,则说明代理容器启动失败,此时向相关负责人员终端发送报警信息,由相关负责人员进行处理。由此在业务容器对外请求失败时,通过尝试启动业务容器能够进一步确定代理容器是否启动成功。103、若所述代理容器启动成功,则启动所述业务容器。对于本发明实施例,若代理容器启动成功,则可以直接执行业务容器启动脚本中的启动命令来启动业务容器;若所述代理容器启动失败,则等待第一预设时长后,控制所述业务容器重新对外发送服务请求,并接收所述服务请求对应的反馈信息,直至根据所述服务请求对应的反馈信息,确定所述代理容器启动成功,启动所述业务容器。进一步地,若控制所述业务容器重新对外发送服务请求的重试次数超过预设重试次数,则确定所述代理容器启动失败,向业务人员终端发送报警信息;若控制所述业务容器重新对外发送服务请求的重试次数未超过预设重试次数,且根据所述服务请求对应的反馈信息,确定所述代理容器启动成功,则启动所述业务容器。其中,第一预设时长和预设重试次数可以根据业务需求进行设定,例如,设定第一预设时长为6s,预设重试次数为12次。具体地,在根据服务请求对应的反馈信息,确定代理容器启动失败时,可能是因为此时代理容器还未完成启动,因此可以休眠第一预设时长,即等待第一预设时长后,重新控制业务容器对外发送服务请求,并根据本次服务请求对应的反馈信息,判断休眠第一预设时长后代理容器是否已经完成启动,即判断代理容器是否启动成功;如果根据本次服务请求对应的反馈信息,确定服务请求成功,则说明代理容器已经完成启动,启动成功,此时可以启动代理容器;如果根据本次服务请求对应的反馈信息,确定服务请求失败,则说明代理容器此时还未完成启动,或者是启动失败,则可以继续休眠第一预设时长后,重新控制业务容器对外发送服务请求,直至根据服务请求对应的反馈信息,确定代理容器启动成功,与此同时,为了防止无期限地等待代理容器完成启动,可以设定重试次数,例如12次,只要业务容器对外发送服务请求的重试次数在12次之内,且能够根据服务请求对应的反馈信息,确定代理容器启动成功,便调用业务容器启动脚本中的启动命令启动业务容器,如果重试次数超过12次,且无法根据服务请求对应的反馈信息,确定代理容器启动成功,则此时可以向相关股则人员终端发送报警信息,由相关负责人员进行处理。由此通过设定预设时长和预设重试次数能够避免无期限等待代理容器启动。进一步地,如果在业务容器对外发送服务请求的重试次数超过预设重试次数,服务请求对应的反馈信息还是服务请求超时,此时有可能是代理容器启动失败,还有可能是代理容器启动成功,但是服务网络出现问题,进而导致访问失败,为了进一步验证代理容器是否启动成功,可以在重试次数超过预设次数后,尝试启动业务容器,业务容器通过代理容器实现对外的服务注册和消息队列的注册,进而完成启动,如果此时业务容器能够启动成功,说明代理容器已经启动成功;如果业务容器无法启动成功,说明代理容器启动失败,向相关负责人员终端发送报警信息,通知其上线发版失败。由此通常上述方式能够进一步确定代理容器是否启动成功,排除网络故障的影响。本发明实施例提供的一种容器启动方法,与目前容器节点启动时代理容器与业务容器同时启动的方式相比,本发明能够响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求;与此同时,接收所述服务请求对应的反馈信息,并根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功;若所述代理容器启动成功,则启动所述业务容器,从而能够在启动代理容器的同时,控制业务容器对外发送服务请求,并根据服务请求对应的反馈信息,判断代理容器是否启动成功,如果代理容器启动成功,再启动业务容器,由此能够保证业务容器在代理容器启动成功之后再启动,以便业务容器能够利用代理容器对外进行访问,确保业务容器启动成功。进一步地,本发明实施例还提供了一种容器销毁方法,如图2所示,所述方法包括:201、响应于接收到容器节点的销毁指令,销毁所述容器节点中的业务容器,并利用所述容器节点中代理容器预先设置的进程检测功能检测所述业务容器中是否还存在业务进程。现有技术中销毁容器节点时,容器节点中的业务容器和代理容器也是同时销毁的,由于业务容器进行销毁时,会利用代理容器对外请求服务销毁业务容器的相关信息,如销毁服务注册中心的相关信息,销毁消息列表中的相关信息,因此如果业务容器和代理容器同时销毁,代理容器很有可能在业务容器销毁结束之前已经销毁,此时会导致业务容器的相关信息没有完全销毁掉,留有业务容器的残余信息,为了克服现有技术的上述缺陷,本发明实施例能够让容器节点中的业务容器和代理容器按照期望顺序进行销毁,具体地,在销毁pod容器节点时,直接销毁业务容器,同时利用代理容器中的进程检测机制检测业务容器中是否还存在业务进程,如果业务容器中不存在业务进程,则销毁代理容器,由此能够保证在业务容器销毁成功之后再销毁代理容器,确保业务容器的相关信息被销毁干净,没有残余信息。具体地,在版本代码更新时,需要把原来版本的代码屏蔽掉,该屏蔽的过程就是销毁的过程,当接收到相应服务的容器节点的销毁指令时,为了保证业务容器第一时间被销毁,直接调用业务容器销毁脚本中的销毁指令来销毁业务容器,业务容器在进行销毁时,通过对外请求服务的方式把业务容器的相关信息销毁掉,具体地,通过指令curl对外请求服务,销毁掉注册中心和消息队列中的相关信息,且在对外请求服务注销业务容器的相关信息时是通过代理容器对外发送服务请求,而对于代理容器,在执行代理容器销毁脚本中的销毁指令之前,需要利用代理容器预先设置的进程检测机制检测业务容器中是否还存在业务进程,具体地,可以预先配置代理容器的进程检测机制,即在代理容器中设置生命周期钩子prestop,在代理容器执行销毁命令之前,会触发命令excecommand(netstat-plunt/greptcp/grep-venvoy/wc-/)检测业务容器中业务进程的数量,如果业务进程的数量为0,则确定业务容器中的业务进程已经结束,此时可以销毁代理容器,即执行代理容器销毁脚本中的销毁指令;如果业务进程的数量不为0,则确定业务容器中的业务进程还没有结束,此时还不能销毁代理容器,需要等待业务容器中的业务进程完全结束后,再销毁代理容器,由此能够保证代理容器在业务容器销毁完成之后再进行销毁,确保业务容器的相关信息被销毁干净,没有残余信息。进一步地,所述利用所述容器节点中代理容器预先设置的进程检测功能检测所述业务容器中是否还存在业务进程,包括:利用所述代理容器预先设置的进程检测功能检测所述业务容器中是否存在服务注册销毁进程;若不存在所述服务注册销毁进程,则利用所述代理容器预先设置的进程检测功能检测所述业务容器中是否存在消息队列销毁进程。具体地,在容器节点启动时,业务容器会在服务注册中心注册相关信息,也会在消息队列中注册相关信息,因此在容器节点注销时,业务容器也需要通过对外访问的方式注销掉与业务容器相关的信息,从而最终完成业务容器的销毁,由此业务容器对外请求服务注销时会利用到代理容器,因此代理容器必须在业务容器销毁成功之后再进行销毁,所以代理容器再执行销毁命令之前,会一直检测业务容器中是否还存在服务注册销毁进程;如果不存在服务注册销毁进程,还会继续检测业务容器中是否还存在消息队列注销进程,直至上述注销进程完全结束,确定业务容器中的进程数量为0,执行代理容器销毁脚本中的销毁命令。202、若所述业务容器中不存在所述业务进程,则销毁所述代理容器。对于本发明实施例,若业务容器中不存在业务进程,即业务进程的数量为0,则销毁代理容器;若业务容器中存在业务进程,则等待第二预设时长后,利用所述代理容器预先设置的进程检测功能重新检测所述业务容器中是否还存在业务进程,直至所述业务容器中不存在业务进程,销毁所述代理容器。其中,第二预设时长可以根据业务需求进行设定,如设定第二预设时长为5s,即每隔5s重新检测业务容器中是否还存在业务进程。具体地,如果检测到业务容器中还存在业务进程,说明此时业务容器还未完成销毁,可以等待第二预设时长后,重新检测业务容器中是否还存在业务进程,如果此次检测业务容器中还存在业务进程,则继续等待第二预设时长,重复上述过程,直至业务容器中注册中心服务注销、消息队列注销等业务进程完全结束,则执行代理容器销毁脚本中的销毁命令,销毁代理容器,由此能够保证代理容器和业务容器按照期望销毁顺序进行销毁,从而能够保证代理容器在业务容器销毁成功之后再进行销毁,确保与业务容器的相关信息能够被销毁干净,没有残余信息。本发明实施例提供的一种容器销毁方法,与目前容器节点销毁时代理容器与业务容器同时销毁的方式相比,本发明能够响应于接收到容器节点的销毁指令,销毁所述容器节点中的业务容器,并利用所述容器节点中代理容器预先设置的进程检测功能检测所述业务容器中是否还存在业务进程;若所述业务容器中不存在所述业务进程,则销毁所述代理容器,由此能够在代理容器销毁之前检测业务容器中是否存在业务进程,并在确定业务容器中不存在业务进程时,销毁代理容器,从而能够保证代理容器在业务容器销毁成功之后再进行销毁,确保证业务容器的相关信息被销毁干净,没有残余信息。进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种容器启动装置,如图3所示,该装置包括:第一启动单元31、判断单元32和第二启动单元33。所述第一启动单元31,可以用于响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求。所述第一启动单元31是本装置中响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求的主要功能模块。所述判断单元32,可以用于接收所述服务请求对应的反馈信息,根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功。所述判断单元32是本装置中接收所述服务请求对应的反馈信息,根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功的主要功能模块,也是核心模块。所述第二启动单元33,可以用于若所述代理容器启动成功,则启动所述业务容器。所述第二启动单元33是本装置中若所述代理容器启动成功,则启动所述业务容器的主要功能模块,也是核心模块。进一步地,所述第二启动单元33,还可以用于若所述代理容器启动失败,则等待第一预设时长后,控制所述业务容器重新对外发送服务请求,并接收所述服务请求对应的反馈信息,直至根据所述服务请求对应的反馈信息,确定所述代理容器启动成功,启动所述业务容器。进一步地,为了控制业务容器重新对外发送服务请求,所述第二启动单元33,如图4所示,包括:发送模块331和启动模块332。所述发送模块331,可以用于若控制所述业务容器重新对外发送服务请求的重试次数超过预设重试次数,则确定所述代理容器启动失败,向业务人员终端发送报警信息。所述启动模块332,可以用于若控制所述业务容器重新对外发送服务请求的重试次数未超过预设重试次数,且根据所述服务请求对应的反馈信息,确定所述代理容器启动成功,则启动所述业务容器。进一步地,为了控制所述业务容器对外发送服务请求,所述第一启动单元31,具体可以用于控制所述业务容器对外发送服务请求,并利用预设流量控制工具拦截所述服务请求,将所述服务请求转发给所述代理容器,以便所述代理容器转发所述服务请求。进一步地,为了判断代理容器是否启动成功,所述判断单元32,包括:第一确定模块321和第二确定模块322。所述第一确定模块321,可以用于若所述反馈信息为服务请求成功,则确定所述代理容器在业务容器启动之前启动成功。所述第二确定模块322,可以用于若所述反馈信息为服务请求失败,则确定所述代理容器在业务容器启动之前启动失败。进一步地,为了能够按照期望顺序销毁代理容器和业务容器,所述装置还包括:第一销毁单元34和第二销毁单元35,所述第一销毁单元34,可以用于响应于接收到容器节点的销毁指令,销毁所述容器节点中的业务容器,并利用所述容器节点中代理容器预先设置的进程检测功能检测所述业务容器中是否还存在业务进程。所述第二销毁单元35,可以用于若所述业务容器中不存在所述业务进程,则销毁所述代理容器。进一步地,为了重新检测业务容器中是否还存在业务进程,所述第二销毁单元35,还可以用于若所述业务容器中存在业务进程,则等待第二预设时长后,利用所述代理容器预先设置的进程检测功能重新检测所述业务容器中是否还存在业务进程,直至所述业务容器中不存在业务进程,销毁所述代理容器。进一步地,所述第一销毁单元34,包括:第一检测模块341和第二检测模块342。所述第一检测模块341,可以用于利用所述代理容器预先设置的进程检测功能检测所述业务容器中是否存在服务注册销毁进程。所述第二检测模块342,可以用于若不存在所述服务注册销毁进程,则利用所述代理容器预先设置的进程检测功能检测所述业务容器中是否存在消息队列销毁进程。所述第二销毁单元35,具体可以用于若所述业务容器中不存在所述消息队列销毁进程,则销毁所述代理容器。基于上述如图1和图2所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图1至图2所示的方法。基于上述如图1所示方法和如图3所示装置的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图5所示,该计算机设备包括:处理器41、存储器42、及存储在存储器42上并可在处理器上运行的计算机程序,其中存储器42和处理器41均设置在总线43上所述处理器41执行所述程序时实现如图1至图2所示的方法。通过本发明的技术方案,本发明能够响应于接收到容器节点的启动指令,启动所述容器节点中的代理容器,并控制所述容器节点中的业务容器对外发送服务请求;与此同时,接收所述服务请求对应的反馈信息,并根据所述反馈信息判断所述代理容器是否在业务容器启动之前启动成功;若所述代理容器启动成功,则启动所述业务容器,从而能够在启动代理容器的同时,控制业务容器对外发送服务请求,并根据服务请求对应的反馈信息,判断代理容器是否启动成功,如果代理容器启动成功,再启动业务容器,由此能够保证业务容器在代理容器启动成功之后再启动,以便业务容器能够利用代理容器对外进行访问,确保业务容器启动成功。本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1