[发明专利]一种配置加载方法和系统有效
申请号: | 201710264030.7 | 申请日: | 2017-04-21 |
公开(公告)号: | CN107092491B | 公开(公告)日: | 2021-04-16 |
发明(设计)人: | 宁志超;林志远 | 申请(专利权)人: | 网宿科技股份有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401 |
代理公司: | 北京华智则铭知识产权代理有限公司 11573 | 代理人: | 田建涛 |
地址: | 200030 上海市徐汇区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 配置 加载 方法 系统 | ||
本发明公开了一种配置加载方法和系统,其中该方法包括:接收通过接口输入的配置信息;根据配置信息生成配置对象,为配置对象分配唯一的序号并确定配置对象间的依赖关系;以邻接表形式存储所有配置对象及其依赖关系,得到第一邻接表;对第一邻接表进行遍历,得到配置对象的加载序列;按照加载序列依次加载配置对象。本发明通过通用的加载框架,将配置信息抽象成配置对象,用邻接表存储配置对象及其依赖关系,利用邻接表的遍历驱动配置对象的自动加载,并保证加载次序,实现了配置加载管理和加载流程结构化、自动化,依赖关系可描述化,提升可读性和易维护性;框架和业务分离,实现跨组件通用,增强了可扩展性。
技术领域
本发明涉及计算机技术领域,特别涉及一种配置加载方法和系统。
背景技术
现有日志系统中的各个组件都会使用到不同的配置文件,这些配置文件有些是独立的,有些是和其他配置文件有关联的,存在相互依赖的关系。这些配置文件在各组件中的加载流程不统一,同一组件内的配置加载流程也不统一。随着业务的不断增长和客户需求的不断变化,配置文件的种类和数量也会不断增长,关系也会更加复杂,基于这样的现状,现有的配置加载方式存在以下缺点:
(1)不同的配置加载过程比较分散,没有统一的配置加载流程;
(2)配置间的依赖关系完全依靠代码顺序,可读性和易维护性很差;
(3)新增配置的加载流程不明确,容易对旧配置的加载产生影响,无关配置之间没有隔离机制。
发明内容
为了解决现有配置加载流程不具备通用性、不易扩展、维护性差的问题,本发明实施例提供了一种配置加载方法和系统。所述技术方案如下:
根据本发明实施例的一个方面,提供了一种配置加载方法,包括:
接收通过接口输入的配置信息;
根据所述配置信息生成配置对象,为所述配置对象分配唯一的序号并确定配置对象之间的依赖关系;
以邻接表的形式存储所有配置对象及其依赖关系,得到第一邻接表;
对所述第一邻接表进行遍历,得到配置对象的加载序列;
按照所述加载序列,依次加载所述配置对象。
进一步的,结合深度优先遍历和广度优先遍历,对所述第一邻接表进行遍历,得到配置对象的加载序列,包括:
从所述第一邻接表中的指定节点开始进行深度优先遍历,对于每一个被访问的节点,均执行以下步骤A1至步骤A4,直至所述第一邻接表中的所有节点都已被遍历:
步骤A1,记录该节点的访问次数;
步骤A2,判断所述节点的访问次数是否等于存储在该节点处的配置对象的出度;
步骤A3,如果是,则说明当前节点被遍历,继续进行深度优先遍历,访问依赖于所述当前节点的节点,若没有节点依赖于所述当前节点,则返回到被所述当前节点依赖的节点处,进行广度优先遍历,访问下一个未被遍历的节点;
步骤A4,如果否,则暂时停止深度优先遍历,返回到被所述当前节点依赖的节点处,转为广度优先遍历,访问下一个未被遍历的节点;
将所述配置对象被遍历的先后顺序作为所述加载序列。
进一步的,所述指定节点存储有虚拟根配置对象,所述虚拟根配置对象被实体配置对象依赖,其中,所述实体配置对象存在对应的实体配置文件;虚拟配置对象不存在对应的实体配置文件,依赖于实体配置对象或其他虚拟配置对象。
进一步的,在得到配置对象的加载序列之后,所述方法还包括:
按照预设时间间隔检测是否有配置文件更新;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网宿科技股份有限公司,未经网宿科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710264030.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:水平列表的展示方法及装置
- 下一篇:虚拟对象的控制方法和装置