服务进程控制方法、装置、设备、介质及程序产品与流程
未命名
09-22
阅读:34
评论:0
1.本技术涉及计算机技术领域,尤其涉及一种服务进程控制方法、装置、设备、介质及程序产品。
背景技术:
2.docker容器是一个开源的应用容器引擎,可以将多个服务集成在一个docker容器中,并通过该docker容器将多个服务发布到计算机设备上,具有轻量化、可移植的特点。
3.目前,一个计算机设备中可以运行多个docker容器,每个docker容器在启动时会拉起该docker容器内的所有服务进程,每个docker容器中的服务进程共享该docker容器的容器资源。
4.然而,在上述方案中,启动的docker容器中若存在未使用到或者不需要使用的服务进程时,该服务进程仍会占用容器的可用资源,导致剩余的可用资源无法满足该docker容器中其他服务进程的需求,存在其他服务进程无法正常运行,docker容器的可靠性较低的问题。
技术实现要素:
5.本技术提供一种服务进程控制方法、装置、设备、介质及程序产品,以解决未使用到或者不需要使用的服务进程挤压所在docker容器中其他服务进程的可用资源,docker容器的可靠性较低的问题。
6.第一方面,本技术实施例提供一种服务进程控制方法,包括:
7.在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值,所述键值用于指示所述服务进程的目标工作状态;
8.在任一服务进程的键值指示所述服务进程的目标工作状态为关闭,且所述服务进程的实际工作状态为启动时,关闭所述服务进程。
9.在第一方面的一种可能设计中,所述方法还包括:
10.在任一服务进程的键值指示所述服务进程的目标工作状态为启动,且所述服务进程的实际工作状态为关闭时,启动所述服务进程。
11.在第一方面的另一种可能设计中,在docker容器启动后,所述方法还包括:
12.获取服务调用指令,所述服务调用指令包括目标服务进程的标识;
13.根据所述目标服务进程的标识,将所述目标服务进程的键值指示的目标工作状态更改为启动。
14.在第一方面的再一种可能设计中,所述在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值之前,所述方法还包括:
15.在所述docker容器启动前,通过容器环境管理k8s的应用程序接口api在configmap中写入每个服务进程的初始键值,所述每个服务进程的初始键值均用于指示所述服务进程的初始工作状态为关闭。
16.可选的,所述在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值,包括:
17.在所述docker容器启动后,按照所述预设频率调用k8s接口获取存储在configmap中的每个服务进程的键值。
18.在第一方面的又一种可能设计中,所述方法还包括:
19.在所述服务进程工作完成后,将所述服务进程的键值指示的目标工作状态更改为关闭。
20.第二方面,本技术实施例提供一种服务进程控制装置,包括:
21.获取模块,用于在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值,所述键值用于指示所述服务进程的目标工作状态;
22.处理模块,用于在任一服务进程的键值指示所述服务进程的目标工作状态为关闭,且所述服务进程的实际工作状态为启动时,关闭所述服务进程。
23.在第二方面的一种可能设计中,所述处理模块,还用于:
24.在任一服务进程的键值指示所述服务进程的目标工作状态为启动,且所述服务进程的实际工作状态为关闭时,启动所述服务进程。
25.在第二方面的另一种可能设计中,在docker容器启动后,所述获取模块,还用于获取服务调用指令,所述服务调用指令包括目标服务进程的标识;
26.所述处理模块,还用于根据所述目标服务进程的标识,将所述目标服务进程的键值指示的目标工作状态更改为启动。
27.在第二方面的再一种可能设计中,所述在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值之前,所述处理模块还用于:
28.在所述docker容器启动前,通过容器环境管理k8s的应用程序接口api在configmap中写入每个服务进程的初始键值,所述每个服务进程的初始键值均用于指示所述服务进程的初始工作状态为关闭。
29.可选的,所述获取模块,具体用于:
30.在所述docker容器启动后,按照所述预设频率调用k8s接口获取存储在configmap中的每个服务进程的键值。
31.在第二方面的又一种可能设计中,所述处理模块,还用于:
32.在所述服务进程工作完成后,将所述服务进程的键值指示的目标工作状态更改为关闭。
33.第三方面,本技术实施例提供一种计算机设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序指令,所述处理器执行所述计算机程序指令时用于实现第一方面以及各可能设计提供的方法。
34.第四方面,本技术实施例可提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面以及各可能设计提供的方法。
35.第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时用于实现第一方面以及各可能设计提供的方法。
36.本技术实施例提供的服务进程控制方法、装置、设备、介质及程序产品,在该方法
中:通过在docker容器启动后,按照预设频率获取docker容器中各服务进程的键值,在任一服务进程的键值指示服务进程的目标工作状态为关闭,且服务进程的实际工作状态为启动时,关闭服务进程。在本方案中,通过获取服务进程的键值,在该键值指示该服务进程需要关闭时,实时动态的关闭该服务进程,无需进入docker容器手动执行服务进程关闭命令就能够实现对docker容器中各服务进程进行开关控制,从而实现docker容器中容器资源部的高效利用,为其他正在运行的服务进程提供充分的可用资源,保证了上述其他正在运行的服务进程的正常运行,提高了docker容器的可靠性。
附图说明
37.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
38.图1为本技术实施例提供的服务进程控制方法的一种基于configmap的容器内部服务管理框架示意图;
39.图2为本技术实施例提供的服务进程控制方法实施例一的流程示意图;
40.图3为本技术实施例提供的服务进程控制方法实施例二的流程示意图;
41.图4为本技术实施例提供的服务进程控制装置的结构示意图;
42.图5为本技术实施例提供的计算机设备的结构示意图。
43.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
44.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
45.在介绍本技术的实施例之前,首先对本技术实施例的应用背景进行解释:
46.现在的docker容器中的服务一般在docker容器启动的过程中就配置了拉起命令,导致基于docker容器的服务一般在docker容器启动时就会拉起相关的服务进程,也就是说docker容器内的服务和docker容器的生命周期高度一致,docker容器中的服务进程共享该docker容器的容器资源。
47.然而,现有的docker容器中的服务进程在使用过程中存在如下问题:
48.(1)、当docker容器拉起时,docker容器中的各服务进程不论是否需要使用全部都同步拉起,共享该docker容器的容器资源。若某个服务进程未使用到或不需要使用时,该服务进程占用的cpu、存储或网络相关的容器资源便被浪费掉了,同时对其他服务进程的可用资源也形成了抢占和挤压,也就是说,docker容器中的各服务只能跟随docker容器拉起而拉起,无法在真正需要使用的时候才开启。
49.(2)、当docker容器中某服务进程开启后,在不再需要使用该服务进程时,无法动态将其关闭,导致资源浪费和占用;同时,由于服务进程和服务进程对应的执行命令运行于
docker容器内部,当docker容器的服务进程处于关闭状态时无法动态将其开启,需要运维人员手动进入docker容器中执行服务进程启动命令,带来了用户操作上的不便。
50.(3)、当docker容器中某服务进程开启后,若该服务进程意外退出,则该服务进程对应的服务将不可用,除非重启docker容器或者进入docker容器后重新执行服务进程启动命令才能恢复,此时docker容器内该服务的可靠性较差。
51.针对上述问题,本技术的发明构思如下:在docker容器运行过程中,可以将该docker容器中各服务进程对应的目标工作状态通过键值进行表示,这样,在计算机设备可以按照预设频率获取docker容器中各服务进程的键值,以使在键值指示该服务进程的目标工作状态为关闭,且该服务进程此时正处于开启状态时,将该服务进程关闭,从而解放该服务进程占用的可用资源,保证了其他服务进程的正常运行,提高了该docker容器的可靠性。
52.示例性的,本技术实施例提供的服务进程控制方法可以应用于图1所示的一种基于configmap的容器内部服务管理框架示意图中。图1为本技术实施例提供的服务进程控制方法的一种基于configmap的容器内部服务管理框架示意图,用以解决上述技术问题。
53.如图1所示,在本实施例中,可以通过运维人员调用容器环境管理kubernetes(别名:k8s)的应用程序接口(application programming interface,api)修改configmap中存储的各服务进程的键值,还可以通过api接收其他设备发送的服务调用指令,从而根据该服务调用指令修改configmap中存储的对应的服务进程的键值。
54.其中,docker容器内运行有多个服务进程(图1仅示出了三个服务进程,分别为服务进程1、服务进程2以及服务进程3),docker容器中的守护进程按照预设频率获取configmap中存储的各服务进程的键值,在该服务进程的键值指示的目标工作状态与该服务进程的实际工作状态不符时,则控制该服务进程按照目标工作状态工作。
55.可以理解的是,本技术实施例的执行主体为计算机设备,该计算机设备可以为终端设备,也可以为服务器,例如,后台的处理平台等。关于该计算机设备具体为终端设备,还是服务器,其可以实际情况确定,本技术实施例对此不进行具体限制。
56.下面,通过具体实施例对本技术的技术方案进行详细说明。
57.需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
58.图2为本技术实施例提供的服务进程控制方法实施例一的流程示意图。
59.如图2所示,该服务进程控制方法可以包括如下步骤:
60.s21、在docker容器启动后,按照预设频率获取docker容器中各服务进程的键值。
61.在一种可实现的方式中,在docker容器启动后,按照预设频率调用k8s的接口获取存储在configmap中的每个服务进程的键值,从而保证了后续根据各服务进程的键值对各服务进程进行控制的准确性以及及时性。
62.在实际应用中,可以在启动docker容器的服务进程的命令中加入一条shell脚本命令,通过该shell脚本命令执行死循环,按照预设频率调用k8s接口存储在configmap中的每个服务进程的键值。其中,shell脚本可以实现为守护进程。
63.其中,键值用于指示服务进程的目标工作状态。
64.示例性的,在服务进程的键值为true时,指示该服务进程的目标工作状态为启动;键值为false或空(也就是未获取到键值)时,则该键值指示该服务进程的目标工作状态为
关闭。
65.应理解,服务进程的键值的形式以及数值还可以包括其他形式,如在服务进程的键值为1时,指示该服务进程的目标工作状态为启动;键值为0时,则该键值指示该服务进程的目标工作状态为关闭,可以根据实际情况进行确定,本技术实施例对此不进行具体限制。
66.其中,configmap中存储有docker容器中各服务进程的键值。其中,各服务进程的键值可以通过标志进行表示。示例性的,configmap中存储有多个标志,每个标志的键为各服务进程对应的服务,每个键对应的键值则为每个服务进程对应的目标工作状态。
67.可选的,预设频率可以为1秒1次,5秒1次,或者10秒1次等,可以根据用户的实际需求进行设定,本技术实施例对此不进行具体限制。
68.作为一种优选的实现方案,预设频率可以为5秒1次。
69.s22、在任一服务进程的键值指示服务进程的目标工作状态为关闭,且服务进程的实际工作状态为启动时,关闭服务进程。
70.示例性的,在键值为false或空用于指示该服务进程的目标工作状态为关闭时,若任一服务进程的键值为false或空,且该服务进程正在启动运行时,则执行服务进程关闭命令,关闭该服务进程。
71.本技术实施例提供的服务进程控制方法,通过在docker容器启动后,按照预设频率获取docker容器中各服务进程的键值,在任一服务进程的键值指示服务进程的目标工作状态为关闭,且服务进程的实际工作状态为启动时,关闭服务进程。在本方案中,通过获取服务进程的键值,在该键值指示该服务进程需要关闭时,实时动态的关闭该服务进程,无需进入docker容器手动执行服务进程关闭命令就能够实现对docker容器中各服务进程进行开关控制,从而实现docker容器中容器资源部的高效利用,为其他正在运行的服务进程提供充分的可用资源,保证了上述其他正在运行的服务进程的正常运行,提高了docker容器的可靠性。
72.可选的,在一些实施例中,在任一服务进程的键值指示服务进程的目标工作状态为启动,且服务进程的实际工作状态为关闭时,启动该服务进程。
73.示例性的,在键值为true用于指示该服务进程的目标工作状态为启动时,若任一服务进程的键值为true,且该服务进程处于关闭状态,则执行服务进程启动命令,启动该服务进程。
74.在上述实施例中,通过服务进程的键值实现了对服务进程的开关控制,提高了对服务进程控制的便捷性。针对于现有技术中docker容器中服务进程意外退出后,该服务将不可用,难以保证服务的可靠性的问题,本技术在启动docker容器后,同时按照预设频率获取各服务进程的键值,以使在服务进程意外退出后,仍然能够根据服务进程的键值开启该意外退出的服务进程,实现了对意外退出的服务进程进行快速恢复的目的,提高了服务的可靠性。
75.图3为本技术实施例提供的服务进程控制方法实施例二的流程示意图。如图3所示,在上述任一实施例的基础上,在docker容器启动后,该服务进程控制方法可以包括如下步骤:
76.s31、获取服务调用指令。
77.在一种可实现的方式中,可以通过k8s的api接收其他设备发送的服务调用指令,
该服务调用指令包括目标服务进程的标识。
78.s32、根据目标服务进程的标识,将目标服务进程的键值指示的目标工作状态更改为启动。
79.在一种可实现的方式中,根据该目标服务进程的标识,获取存储在configmap中的该目标服务进程的键值,并对键值进行修改,以使修改后的键值用于指示的目标工作状态为启动。
80.示例性的,假设服务进程的键值为true用于指示该服务进程的目标工作状态为启动,键值为false或空用于指示该服务进程的目标工作状态为关闭。计算机设备在获取服务调用指令后,获取configmap中存储的标志中键为目标服务进程的键值,并将该键值修改为true,以使执行图2所示实施例对应的步骤,在预设时长内将启动目标服务进程。
81.其中,预设时长与预设频率相关。示例性的,若预设频率为1秒1次,则预设时长为1秒,若预设频率为5秒1次,则预设时长为5秒,若预设频率为10秒1次,则预设时长为10秒。
82.在上述实施例中,通过获取服务调用指令,根据该服务调用指令携带的目标服务进程的标识,将该目标服务进程的键值指示的目标工作状态更改为启动,以使后续根据该更改后的键值启动目标服务进程,实现了从外部环境动态控制docker容器内部资源,提高了对docker容器中各服务进程控制的便捷性。
83.可选的,在一些实施例中,在服务进程工作完成后,将服务进程的键值指示的目标工作状态更改为关闭。
84.示例性的,假设服务进程的键值为true用于指示该服务进程的目标工作状态为启动,键值为false或空用于指示该服务进程的目标工作状态为关闭。在服务进程工作完成后,获取configmap中存储的标志中键为该目标服务进程的键值,并将该键值修改为false或空,以使执行图2所示实施例对应的步骤,在预设时长内将关闭目标服务进程。
85.可选的,还可以获取携带有目标服务进程的服务结束指令,根据该目标服务进程的标识,获取存储在configmap中的该目标服务进程的键值,并对键值进行修改,以使修改后的键值用于指示的目标工作状态为停止。
86.在实际应用中,运维人员可以通过k8s接口查看configmap中存储的每个docker容器中的各服务进程的键值,并根据实际需求对各服务进程的键值进行修改,从而控制docker容器中的各服务进程的工作状态。
87.示例性的,当需要使用docker容器中某服务时,运维人员可以通过调用k8s接口将该服务对应的服务进程的键值由false或空更改为true,以使计算机设备在预设时长内启动该服务进程;同样的,在不需要使用某项服务时,运维人员可以通过调用k8s接口将该服务对应的服务进程的键值由true更改为false或空,以使计算机设备在预设时长内关闭该服务进程。
88.在上述几个实施例中,本方案能够实现对docker容器中各服务进程的开关控制,方便了用户对docker容器内各服务进程的管理,从而提高系统运维的效率,实现了从外部环境动态控制docker容器内部资源的功能。
89.可选的,在一些实施例中,在s21之前,该服务进程控制方法可以包括如下步骤:在docker容器启动前,通过k8s的api在configmap中写入每个服务进程的初始键值。其中,每个服务进程的初始键值均用于指示服务进程的初始工作状态为关闭。
90.在上述实施例中,在docker容器启动前,对各服务进程的初始键值进行设置,以使该初始键值指示各服务进程的初始工作状态均为关闭,以使在后续docker容器启动后,可以根据实际需求开启需要使用的服务进程,避免了不需要使用的服务进程随着docker容器的启动而拉起,进一步的节约了docker容器的容器资源,保证了其他需要运行的服务进程的可用资源。
91.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
92.图4为本技术实施例提供的服务进程控制装置的结构示意图。如图4所示,该服务进程控制装置包括:
93.获取模块41,用于在docker容器启动后,按照预设频率获取docker容器中各服务进程的键值,键值用于指示服务进程的目标工作状态;
94.处理模块42,用于在任一服务进程的键值指示服务进程的目标工作状态为关闭,且服务进程的实际工作状态为启动时,关闭服务进程。
95.在本技术实施例的一种可能设计中,处理模块42,还用于:
96.在任一服务进程的键值指示服务进程的目标工作状态为启动,且服务进程的实际工作状态为关闭时,启动服务进程。
97.在本技术实施例的另一种可能设计中,在docker容器启动后,获取模块41,还用于获取服务调用指令,服务调用指令包括目标服务进程的标识;
98.处理模块42,还用于根据目标服务进程的标识,将目标服务进程的键值指示的目标工作状态更改为启动。
99.在本技术实施例的再一种可能设计中,在docker容器启动后,按照预设频率获取docker容器中各服务进程的键值之前,处理模块42还用于:
100.在docker容器启动前,通过容器环境管理k8s的应用程序接口api在configmap中写入每个服务进程的初始键值,每个服务进程的初始键值均用于指示服务进程的初始工作状态为关闭。
101.可选的,获取模块41,具体用于:
102.在docker容器启动后,按照预设频率调用k8s接口获取存储在configmap中的每个服务进程的键值。
103.在本技术实施例的又一种可能设计中,处理模块42,还用于:
104.在服务进程工作完成后,将服务进程的键值指示的目标工作状态更改为关闭。
105.本技术实施例提供的服务进程控制装置,可用于执行上述任一实施例中的服务进程控制方法,其实现原理和技术效果类似,在此不再赘述。
106.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。此外,这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
107.图5为本技术实施例提供的计算机设备的结构示意图。如图5所示,该计算机设备可以包括:处理器51、存储器52及存储在存储器52上并可在处理器51上运行的计算机程序指令,处理器51执行计算机程序指令时实现前述任一实施例提供的服务进程控制方法。
108.可选的,该计算机设备的上述各个器件之间可以通过系统总线连接。
109.存储器52可以是单独的存储单元,也可以是集成在处理器中的存储单元。处理器的数量为一个或者多个。
110.可选的,计算机设备还可以包括与其他设备进行交互的接口。
111.应理解,处理器51可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
112.系统总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器可能包括随机存取存储器(random access memory,ram),也可能还包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。
113.实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(read-only memory,rom)、ram、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppy disk)、光盘(英文:optical disc)及其任意组合。
114.本技术实施例提供的计算机设备,可用于执行上述任一方法实施例提供的服务进程控制方法,其实现原理和技术效果类似,在此不再赘述。
115.本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述服务进程控制方法。
116.上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器,电可擦除可编程只读存储器,可擦除可编程只读存储器,可编程只读存储器,只读存储器,磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
117.可选的,将可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(application specific integrated circuits,asic)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
118.本技术实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,至少一个处理器可以从该计算机可读存储介质中读取该计算机程序,至少一个处理器执行计算机程序时可实现上述服务进程控制方法。
119.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
技术特征:
1.一种服务进程控制方法,其特征在于,包括:在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值,所述键值用于指示所述服务进程的目标工作状态;在任一服务进程的键值指示所述服务进程的目标工作状态为关闭,且所述服务进程的实际工作状态为启动时,关闭所述服务进程。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在任一服务进程的键值指示所述服务进程的目标工作状态为启动,且所述服务进程的实际工作状态为关闭时,启动所述服务进程。3.根据权利要求1或2所述的方法,其特征在于,在docker容器启动后,所述方法还包括:获取服务调用指令,所述服务调用指令包括目标服务进程的标识;根据所述目标服务进程的标识,将所述目标服务进程的键值指示的目标工作状态更改为启动。4.根据权利要求1或2所述的方法,其特征在于,所述在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值之前,所述方法还包括:在所述docker容器启动前,通过容器环境管理k8s的应用程序接口api在configmap中写入每个服务进程的初始键值,所述每个服务进程的初始键值均用于指示所述服务进程的初始工作状态为关闭。5.根据权利要求4所述的方法,其特征在于,所述在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值,包括:在所述docker容器启动后,按照所述预设频率调用k8s接口获取存储在configmap中的每个服务进程的键值。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述服务进程工作完成后,将所述服务进程的键值指示的目标工作状态更改为关闭。7.一种服务进程控制装置,其特征在于,包括:获取模块,用于在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值,所述键值用于指示所述服务进程的目标工作状态;处理模块,用于在任一服务进程的键值指示所述服务进程的目标工作状态为关闭,且所述服务进程的实际工作状态为启动时,关闭所述服务进程。8.根据权利要求7所述的装置,其特征在于,所述处理模块,还用于:在任一服务进程的键值指示所述服务进程的目标工作状态为启动,且所述服务进程的实际工作状态为关闭时,启动所述服务进程。9.根据权利要求7或8所述的装置,其特征在于,在docker容器启动后,所述获取模块,还用于获取服务调用指令,所述服务调用指令包括目标服务进程的标识;所述处理模块,还用于根据所述目标服务进程的标识,将所述目标服务进程的键值指示的目标工作状态更改为启动。10.根据权利要求7或8所述的装置,其特征在于,所述在docker容器启动后,按照预设频率获取所述docker容器中各服务进程的键值之前,所述处理模块还用于:
在所述docker容器启动前,通过容器环境管理k8s的应用程序接口api在configmap中写入每个服务进程的初始键值,所述每个服务进程的初始键值均用于指示所述服务进程的初始工作状态为关闭。11.根据权利要求10所述的装置,其特征在于,所述获取模块,具体用于:在所述docker容器启动后,按照所述预设频率调用k8s接口获取存储在configmap中的每个服务进程的键值。12.根据权利要求7所述的装置,其特征在于,所述处理模块,还用于:在所述服务进程工作完成后,将所述服务进程的键值指示的目标工作状态更改为关闭。13.一种计算机设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序指令,其特征在于,所述处理器执行所述计算机程序指令时用于实现如权利要求1至6任一项所述的服务进程控制方法。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的服务进程控制方法。15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现如权利要求1至6任一项所述的服务进程控制方法。
技术总结
本申请提供一种服务进程控制方法、装置、设备、介质及程序产品,该方法包括:通过在Docker容器启动后,按照预设频率获取Docker容器中各服务进程的键值,在任一服务进程的键值指示服务进程的目标工作状态为关闭,且服务进程的实际工作状态为启动时,关闭服务进程。在本方案中,通过获取服务进程的键值,在该键值指示该服务进程需要关闭时,实时动态的关闭该服务进程,从而实现Docker容器中容器资源部的高效利用,为其他正在运行的服务进程提供充分的可用资源,保证了上述其他正在运行的服务进程的正常运行,提高了Docker容器的可靠性。提高了Docker容器的可靠性。提高了Docker容器的可靠性。
技术研发人员:肖瑞
受保护的技术使用者:成都鼎桥通信技术有限公司
技术研发日:2022.03.10
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/