一种轻量级容器的启动方法及系统技术方案

技术编号:15878511 阅读:46 留言:0更新日期:2017-07-25 16:29
本发明专利技术公开了一种轻量级容器的启动方法及系统,方法包括:S1、创建线程,运行Bootstrap框架的boot方法,获取启动参数;S2、实例化轻量级容器类,得到轻量级容器对象;S3、通过轻量级容器对象获取XML配置文件以及XML配置文件包含的子配置文件中的服务配置信息,得到服务配置信息列表;S4、创建新线程,根据服务配置信息列表实例化轻量级容器对象中定义的每个服务,得到服务对象,对每个服务对象进行初始化和启动;S5、当所有服务对象启动成功时,将轻量级容器对象的状态设置为启动状态。本发明专利技术的有益效果是:通过解析启动参数获取配置文件中的服务信息,通过启动服务来启动轻量级容器,不仅部署简单、扩展性强,而且启动速度快。

Method and system for starting lightweight container

The invention discloses a method and a system, start the lightweight container method includes: S1, create a thread to run Bootstrap boot framework, S2, get the boot parameters; the instantiation of lightweight container classes, get the lightweight container object; S3, the lightweight container of service configuration information like access to XML configuration files and XML configuration file contains the configuration file, get the service configuration information list; S4, create a new thread, according to each service definition service configuration information list to instantiate the lightweight container object, service object, initialize and start to each service object; S5, when all service started successfully, the lightweight container object state set to start state. The invention has the advantages that the service information in the configuration file is obtained by analyzing the starting parameter, and the lightweight container is started by starting the service; the utility model has the advantages of simple deployment, high expansibility and quick starting speed.

【技术实现步骤摘要】
一种轻量级容器的启动方法及系统
本专利技术涉及轻量级容器启动
,特别涉及一种轻量级容器的启动方法及系统。
技术介绍
目前,对于运行某些应用的容器来说,启动的时候需要向内存中写入大量数据,初始化时间非常长,整个启动过程需要耗费大量的时间,而且每次启动的时候都要重复这一过程,使得用户每次启动容器后都要要等待很久,不仅如此,容器的扩展性也比较差,很难根据用户需要进行改进,大大降低了用户体验。
技术实现思路
本专利技术提供了一种轻量级容器的启动方法及系统,解决了现有技术中容器启动耗费时间长的技术问题。本专利技术解决上述技术问题的技术方案如下:一种轻量级容器的启动方法,包括:S1、创建线程,运行Bootstrap框架的boot方法,获取启动参数,并将轻量级容器类加载到内存中,所述启动参数包括:XML配置文件、容器启动端口号和类的路径;S2、实例化所述轻量级容器类,得到轻量级容器对象;S3、通过所述轻量级容器对象获取所述XML配置文件以及所述XML配置文件包含的子配置文件中的服务配置信息,得到服务配置信息列表;S4、创建新线程,根据所述服务配置信息列表实例化所述轻量级容器对象中定义的每个服务,得到服务对象,并通过调用每个所述服务对象的初始化方法和启动方法对每个所述服务对象进行初始化和启动;S5、当所有所述服务对象启动成功时,将所述轻量级容器对象的状态设置为启动状态。本专利技术的有益效果是:本技术方案通过轻量级容器来管理应用程序,通过解析启动参数获取配置文件中的服务信息,通过启动服务来启动轻量级容器,不仅部署简单、扩展性强,而且启动速度快。在上述技术方案的基础上,本专利技术还可以做如下改进。优选地,所述步骤S2中,还包括:设置Java命名和目录接口的工厂类名和系统属性,初始化JMX服务,创建新线程启动所述JMX服务。优选地,所述步骤S3包括:S31、分别实例化所述轻量级容器对象中的服务注册管理器、对象注册管理器和XML配置解析器,分别得到服务注册管理器对象、对象注册管理器对象和XML配置解析器对象;S32、通过所述XML配置解析器对象读取所述启动参数中的所述XML配置文件以及所述XML配置文件包含的子配置文件中的服务配置信息,得到服务配置信息列表。优选地,所述步骤S4包括:S41、创建新线程,循环获取所述服务配置信息列表中的每个服务以及每个服务所依赖的服务;S42、实例化每个服务所依赖的服务,得到子服务对象,将所述子服务对象分别注册到所述服务注册管理器对象和所述对象注册管理器对象中,并将所述子服务对象绑定到所述Java命名和目录接口中,然后调用所述子服务对象的初始化方法对所述子服务对象进行初始化;S43、实例化每个服务,得到父服务对象,将所述父服务对象分别注册到所述服务注册管理器对象和所述对象注册管理器对象中,并将所述父服务对象绑定到所述Java命名和目录接口中,然后调用所述父服务对象的初始化方法对所述父服务对象进行初始化;S44、循环获取所述服务注册管理器中的每个服务对象,将当前获取到的服务对象注册到所述JMX服务中,反射调用当前获取到服务对象的启动方法对当前获取到的服务对象进行启动。优选地,所述步骤S5之后,还包括:S6、将所述轻量级容器对象注册到所述JMX服务中;S7、给所述轻量级容器对象添加关闭钩子。优选地,当关闭所述轻量级容器对象时,通过所述关闭钩子反射调用为启动状态的所有服务对象的关闭方法,注销所述JMX对象中的所有服务对象。优选地,所述步骤S1中,通过该线程当前的类加载器将轻量级容器类加载到内存中。优选地,通过反射调用所述轻量级容器类的main方法将所述启动参数传输给所述轻量级容器对象。优选地,所述服务配置信息包括:服务id和服务配置参数信息。一种轻量级容器的启动系统,包括:第一获取模块,用于创建线程,运行Bootstrap框架的boot方法,获取启动参数,并将轻量级容器类加载到内存中,所述启动参数包括:XML配置文件、容器启动端口号和类的路径;第一实例化模块,用于实例化所述轻量级容器类,得到轻量级容器对象;第二获取模块,用于通过所述轻量级容器对象获取所述XML配置文件以及所述XML配置文件包含的子配置文件中的服务配置信息,得到服务配置信息列表;第二实例化模块,用于创建新线程,根据所述服务配置信息列表实例化所述轻量级容器对象中定义的每个服务,得到服务对象,并通过调用每个所述服务对象的初始化方法和启动方法对每个所述服务对象进行初始化和启动;启动模块,用于当所有所述服务对象启动成功时,将所述轻量级容器对象的状态设置为启动状态。附图说明图1为本专利技术实施例提供的一种轻量级容器的启动方法的流程示意图;图2为本专利技术另一实施例提供的一种轻量级容器的启动方法的流程示意图;图3为本专利技术另一实施例提供的一种轻量级容器的启动方法的流程示意图;图4为本专利技术另一实施例实施例提供的一种轻量级容器的启动系统的结构示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,在实施例中,提供一种轻量级容器的启动方法,包括:S1、创建线程,运行Bootstrap框架的boot方法,获取启动参数,并将轻量级容器类加载到内存中,启动参数包括:XML配置文件、容器启动端口号和类的路径;S2、实例化轻量级容器类,得到轻量级容器对象;S3、通过轻量级容器对象获取XML配置文件以及XML配置文件包含的子配置文件中的服务配置信息,得到服务配置信息列表;S4、创建新线程,根据服务配置信息列表实例化轻量级容器对象中定义的每个服务,得到服务对象,并通过调用每个服务对象的初始化方法和启动方法对每个服务对象进行初始化和启动;S5、当所有服务对象启动成功时,将轻量级容器对象的状态设置为启动状态。上述实施例中,通过轻量级容器来管理应用程序,通过运行Bootstrap框架的boot方法来获取启动参数,通过轻量级容器实例对象解析启动参数来获取配置文件中的服务信息,通过启动服务来启动轻量级容器,不仅部署简单、扩展性强,而且启动速度快。Bootstrap是基于HTML5和CSS3开发的,它在jQuery的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件。可以对Bootstrap中所有的CSS变量进行修改,依据自己的需求裁剪代码。所谓容器,指应用代码的运行框架。业务对象在容器里运行,被容器管理。任何容器都应该包含如下服务:生命周期管理,查找服务,配置管理,依赖解析,企业级服务,线程管理,对象池,集群服务,远程服务等。轻量级容器是用纯Java开发的,不依赖J2EE,因此,扩展性更强,具有非侵入性,部署简单且可以快速启动。由于代码对轻量级容器的依赖很少,因而提高了代码的复用度,在开发过程中没有规定必须在某个平台下运行;提高了可测试性,在容器之外就可以完成测试;对构件的编写限制很少,更好的面向对象。具体地,步骤S2中,还包括:设置Java命名和目录接口的工厂类名和系统属性,初始化JMX服务,创建新线程启动JMX服务。应理解,JNDI(JavaNamingandDirectoryInterface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JN本文档来自技高网...
一种轻量级容器的启动方法及系统

【技术保护点】
一种轻量级容器的启动方法,其特征在于,包括:S1、创建线程,运行Bootstrap框架的boot方法,获取启动参数,并将轻量级容器类加载到内存中,所述启动参数包括:XML配置文件、容器启动端口号和类的路径;S2、实例化所述轻量级容器类,得到轻量级容器对象;S3、通过所述轻量级容器对象获取所述XML配置文件以及所述XML配置文件包含的子配置文件中的服务配置信息,得到服务配置信息列表;S4、创建新线程,根据所述服务配置信息列表实例化所述轻量级容器对象中定义的每个服务,得到服务对象,并通过调用每个所述服务对象的初始化方法和启动方法对每个所述服务对象进行初始化和启动;S5、当所有所述服务对象启动成功时,将所述轻量级容器对象的状态设置为启动状态。

【技术特征摘要】
1.一种轻量级容器的启动方法,其特征在于,包括:S1、创建线程,运行Bootstrap框架的boot方法,获取启动参数,并将轻量级容器类加载到内存中,所述启动参数包括:XML配置文件、容器启动端口号和类的路径;S2、实例化所述轻量级容器类,得到轻量级容器对象;S3、通过所述轻量级容器对象获取所述XML配置文件以及所述XML配置文件包含的子配置文件中的服务配置信息,得到服务配置信息列表;S4、创建新线程,根据所述服务配置信息列表实例化所述轻量级容器对象中定义的每个服务,得到服务对象,并通过调用每个所述服务对象的初始化方法和启动方法对每个所述服务对象进行初始化和启动;S5、当所有所述服务对象启动成功时,将所述轻量级容器对象的状态设置为启动状态。2.根据权利要求1所述的一种轻量级容器的启动方法,其特征在于,所述步骤S2中,还包括:设置Java命名和目录接口的工厂类名和系统属性,初始化JMX服务,创建新线程启动所述JMX服务。3.根据权利要求2所述的一种轻量级容器的启动方法,其特征在于,所述步骤S3包括:S31、分别实例化所述轻量级容器对象中的服务注册管理器、对象注册管理器和XML配置解析器,分别得到服务注册管理器对象、对象注册管理器对象和XML配置解析器对象;S32、通过所述XML配置解析器对象读取所述启动参数中的所述XML配置文件以及所述XML配置文件包含的子配置文件中的服务配置信息,得到服务配置信息列表。4.根据权利要求3所述的一种轻量级容器的启动方法,其特征在于,所述步骤S4包括:S41、创建新线程,循环获取所述服务配置信息列表中的每个服务以及每个服务所依赖的服务;S42、实例化每个服务所依赖的服务,得到子服务对象,将所述子服务对象分别注册到所述服务注册管理器对象和所述对象注册管理器对象中,并将所述子服务对象绑定到所述Java命名和目录接口中,然后调用所述子服务对象的初始化方法对所述子服务对象进行初始化;S43、实例化每个服务,得到父服务对象,将所述父服务对象分别注册到所述服务注册管理器对象和所述对象注册管理器对象中...

【专利技术属性】
技术研发人员:方敏
申请(专利权)人:武汉票据交易中心有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1