配置文件处理装置和方法与流程

文档序号:12271494阅读:282来源:国知局
配置文件处理装置和方法与流程

本发明涉及计算机技术领域,尤其涉及一种配置文件处理装置和方法。



背景技术:

手机中通常存储了不同的配置文件,例如,手机系统的配置文件中记录了如CPU功耗参数、屏幕参数、射频参数等,内置应用的配置文件中记录了如手机管家的黑白名单等。针对这些配置文件的升级,现有技术中实现了手机配置管理系统。

目前的手机配置管理系统中,引入了Zookeeper(一种分布式服务)实现分布式系统。该手机配置管理系统模型如图1所示,可见一旦Zookeeper宕机,将导致API(应用程序编程接口)系统不可用;一旦Zookeeper出现通知异常等情况,将导致不同API系统获取到的数据不一致等问题。如果要解决这些问题,需要对系统进行复杂的重构,由于配置管理系统可预期的文件数量不大,在万级左右,且对于文件发布的及时性要求没有那么高,所以没有必要进行复杂的重构工作。

基于上述内容,可知现有技术方案方案存在的问题是:

1、系统对Zookeeper依赖性太强,存在单点故障,即如果Zookeeper宕机,将导致系统不可用。

2、系统的成本较高。

3、为了解决Zookeeper的单点故障问题,系统的复杂度较高,不利于后期的维护扩展。

所以,需要实现一套新的手机配置管理的技术方案,去掉对Zookeeper的依赖,同时又不能影响到系统的整体性能和产品需求。



技术实现要素:

本发明的主要目的在于提出一种配置文件处理装置和方法,旨在在不依赖Zookeeper的情况下,提升处理发布和撤销的配置文件的效率。

为实现上述目的,本发明提供的一种配置文件处理装置,包括:标识获 取模块,用于从数据库中获取预设的发布配置文件表和/或撤销配置文件表,并从所述发布配置文件表中获取其记录的发布的配置文件的标识,和/或从所述撤销配置文件表中获取其记录的撤销的配置文件的标识;内容处理模块,用于按获取的标识,获取所述发布的配置文件对应的配置文件内容并写入缓存中预设的配置文件缓存表,和/或从所述配置文件缓存表中删除所述撤销的配置文件对应的配置文件内容;刷新模块,用于根据所述配置文件缓存表,刷新对应的接口缓存。

可选地,前述的装置,所述标识获取模块按预设的第一时间间隔扫描所述发布配置文件表以获取所述发布的配置文件的标识,按预设的第二时间间隔扫描所述撤销配置文件表以获取所述撤销的配置文件的标识,所述第一时间间隔超过所述第二时间间隔。

可选地,前述的装置,所述内容处理模块从所述发布的配置文件中获取其记录的指定数据交换格式的字符串,并将所述字符串转换为所述发布的配置文件对应的配置文件内容。

可选地,前述的装置,所述标识获取模块从所述发布配置文件表中获取未记录在预设的发布标识列表中的标识,获取后并将其添加到所述发布标识列表中,和/或从所述撤销配置文件表中获取未记录在预设的撤销标识列表中的标识,获取后并将其添加到所述撤销发布标识列表中。

可选地,前述的装置,所述内容处理模块根据所述发布的配置文件对应的配置文件内容的类型,将所述发布的配置文件对应的配置文件内容写入对应类型的配置文件缓存表。

为实现上述目的,本发明提供的一种配置文件处理方法,所述方法包括步骤:从数据库中获取预设的发布配置文件表和/或撤销配置文件表,并从所述发布配置文件表中获取其记录的发布的配置文件的标识,和/或从所述撤销配置文件表中获取其记录的撤销的配置文件的标识;按获取的标识,获取所述发布的配置文件对应的配置文件内容并写入缓存中预设的配置文件缓存表,和/或从所述配置文件缓存表中删除所述撤销的配置文件对应的配置文件内容;根据所述配置文件缓存表,刷新对应的接口缓存。

可选地,前述的方法,从数据库中获取预设的发布配置文件表和/或撤销配置文件表,并从所述发布配置文件表中获取其记录的发布的配置文件的标 识,和/或从所述撤销配置文件表中获取其记录的撤销的配置文件的标识,具体包括:按预设的第一时间间隔扫描所述发布配置文件表以获取所述发布的配置文件的标识,按预设的第二时间间隔扫描所述撤销配置文件表以获取所述撤销的配置文件的标识,所述第一时间间隔超过所述第二时间间隔。

可选地,前述的方法,获取所述发布的配置文件对应的配置文件内容并写入缓存中预设的配置文件缓存表,具体包括:从所述发布的配置文件中获取其记录的指定数据交换格式的字符串,并将所述字符串转换为所述发布的配置文件对应的配置文件内容。

可选地,前述的方法,从所述发布配置文件表中获取其记录的发布的配置文件的标识,和/或从所述撤销配置文件表中获取其记录的撤销的配置文件的标识,具体包括:从所述发布配置文件表中获取未记录在预设的发布标识列表中的标识,获取后并将其添加到所述发布标识列表中,和/或从所述撤销配置文件表中获取未记录在预设的撤销标识列表中的标识,获取后并将其添加到所述撤销发布标识列表中。

可选地,前述的方法,获取所述发布的配置文件对应的配置文件内容并写入缓存中预设的配置文件缓存表,具体包括:根据所述发布的配置文件对应的配置文件内容的类型,将所述发布的配置文件对应的配置文件内容写入对应类型的配置文件缓存表。

根据以上技术方案,可知本发明的配置文件处理装置和方法至少具有以下优点:

在本发明的技术方案中,完全去掉了对zookeeper的依赖,通过在数据库中设置的发布配置文件表和/或撤销配置文件表,可以快速查找到发布的配置文件的标识和/或撤销的配置文件的标识,进而有利于快速进行相应的配置文件内容的处理,提升了处理发布和/或撤销的配置文件的效率。

附图说明

图1是现有技术的基于zookeeper的技术方案的示意图;

图2是根据本发明的一个实施例的配置文件处理装置的框图;

图3是根据本发明的一个实施例的配置文件处理装置的原理图;

图4是根据本发明的一个实施例的配置文件处理方法的流程图;

图5是根据本发明的一个实施例的配置文件处理方法的流程图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图2所示,本发明第一实施例提出一种配置文件处理装置,包括:

标识获取模块210,用于从数据库中获取预设的发布配置文件表和/或撤销配置文件表,并从发布配置文件表中获取其记录的发布的配置文件的标识,和/或从撤销配置文件表中获取其记录的撤销的配置文件的标识。在本实施例中可以实现一种API系统,API系统仍然使用内存缓存方案,而内存的数据不再依赖于Zookeeper,而是依赖于数据库。配置文件表作为数据库中的源表,如果对其进行扫描,效率太低,所以在本实施例中新增两张表,作为系统的队列表,一张是发布配置文件表,一张是撤销配置文件表。

后台系统发布配置文件的时候,将配置文件的ID(标识)写入发布配置文件表中;撤销配置文件的时候,将配置文件的ID写入撤销配置文件表。这样,API系统只需要扫描发布配置文件表与撤销配置文件表,就可以获取到系统中发布的配置文件列表以及撤销的配置文件列表。

内容处理模块220,用于按获取的标识,获取发布的配置文件对应的配置文件内容并写入缓存中预设的配置文件缓存表,和/或从配置文件缓存表中删除撤销的配置文件对应的配置文件内容。在本实施例中,当发布或撤销的配置文件的ID获取后,即可按ID获取相应配置文件的内容。

刷新模块230,用于根据配置文件缓存表,刷新对应的接口缓存。

根据本实施例的技术方案,完全去掉了对zookeeper的依赖,通过在数据库中设置的发布配置文件表和/或撤销配置文件表,可以快速查找到发布的配置文件的标识和/或撤销的配置文件的标识,进而有利于快速进行相应的配置文件内容的处理,提升了处理发布和/或撤销的配置文件的效率。

本发明第二实施例提出一种配置文件处理装置,包括:

标识获取模块210,按预设的第一时间间隔扫描发布配置文件表以从发布配置文件表中获取未记录在预设的发布标识列表中的标识,获取后并将其添 加到发布标识列表中,按预设的第二时间间隔扫描撤销配置文件表以从撤销配置文件表中获取未记录在预设的撤销标识列表中的标识,获取后并将其添加到撤销发布标识列表中,第一时间间隔超过第二时间间隔。在本实施例中,根据一般的产品需求,对于撤销的动作系统需要更快的识别到,而发布的动作允许更大的延时。于是,定时任务中,监控撤销配置文件表的周期可以设置为5秒,而监控发布配置文件表的周期可以设置为10秒。当然,任务周期可以在配置管理系统的设置页面中根据需求的变更进行修改;在本实施例中,在获取最新发布与撤销的配置文件列表时,可以根据自增长ID的特性,获取大于目前内存列表(包括前述的发布ID列表以及撤销ID列表)中最大ID的数据即可,这样就不需要获取这两张表中所有的数据,提高了系统效率。

内容处理模块220,用于按获取的标识,从发布的配置文件中获取其记录的指定数据交换格式(包括但不限于json格式)的字符串,并将字符串转换为发布的配置文件对应的配置文件内容,根据发布的配置文件对应的配置文件内容的类型,将发布的配置文件对应的配置文件内容写入对应类型的配置文件缓存表,和/或从配置文件缓存表中删除撤销的配置文件对应的配置文件内容。在本实施例中,由于API系统中在缓存表中保存的配置文件内容来自数据库中的若干张表(具体如图3所示),如果在发布配置文件表中仅保存配置文件ID的话,监控任务以及系统初始化时根据配置文件ID获取配置文件内容的时候,就需要读取数据库的若干张表进行内容的拼凑,效率较低。为了提高系统初始化的速度,在发布配置文件表中,除了保存配置文件的ID,还进行配置文件内容对象的json字符串的保存。这样,在监控任务和初始化时,只需要根据json字符串进行对象的转换,即可得到配置文件的内容,极大的提高了系统效率,尤其是初始化的速度。在本实施例中,为了提高配置缓存文件表的读取效率,设置了对应多种类型的配置缓存文件表,所以获取数据内容后需要按照其类型写入对应的配置缓存文件表中。

刷新模块230,用于根据配置文件缓存表,刷新对应的接口缓存。在本实施例中,由于存在多种类型接口缓存,所以根据配置文件缓存表中的对应类型的内容,刷新相应类型的接口缓存,做到准确的刷新处理。

根据本实施例的技术方案,在不影响系统性能且不影响产品需求的前提下,去掉了对Zookeeper的依赖,为配置管理系统节约了成本,并降低了系统 的复杂度,大大减轻了后续维护扩展的工作量。

如图4所示,本发明第三实施例提出一种配置文件处理方法,包括:

步骤S410,从数据库中获取预设的发布配置文件表和/或撤销配置文件表,并从发布配置文件表中获取其记录的发布的配置文件的标识,和/或从撤销配置文件表中获取其记录的撤销的配置文件的标识。在本实施例中可以实现一种API系统,API系统仍然使用内存缓存方案,而内存的数据不再依赖于Zookeeper,而是依赖于数据库。配置文件表作为数据库中的源表,如果对其进行扫描,效率太低,所以在本实施例中新增两张表,作为系统的队列表,一张是发布配置文件表,一张是撤销配置文件表。

后台系统发布配置文件的时候,将配置文件的ID(标识)写入发布配置文件表中;撤销配置文件的时候,将配置文件的ID写入撤销配置文件表。这样,API系统只需要扫描发布配置文件表与撤销配置文件表,就可以获取到系统中发布的配置文件列表以及撤销的配置文件列表。

步骤S420,按获取的标识,获取发布的配置文件对应的配置文件内容并写入缓存中预设的配置文件缓存表,和/或从配置文件缓存表中删除撤销的配置文件对应的配置文件内容。在本实施例中,当发布或撤销的配置文件的ID获取后,即可按ID获取相应配置文件的内容。

步骤S430,根据配置文件缓存表,刷新对应的接口缓存。

根据本实施例的技术方案,完全去掉了对zookeeper的依赖,通过在数据库中设置的发布配置文件表和/或撤销配置文件表,可以快速查找到发布的配置文件的标识和/或撤销的配置文件的标识,进而有利于快速进行相应的配置文件内容的处理,提升了处理发布和/或撤销的配置文件的效率。

如图5所示,本发明第四实施例提出一种配置文件处理方法,包括:

步骤S510,按预设的第一时间间隔扫描发布配置文件表以从发布配置文件表中获取未记录在预设的发布标识列表中的标识,获取后并将其添加到发布标识列表中,按预设的第二时间间隔扫描撤销配置文件表以从撤销配置文件表中获取未记录在预设的撤销标识列表中的标识,获取后并将其添加到撤销发布标识列表中,第一时间间隔超过第二时间间隔。在本实施例中,根据 一般的产品需求,对于撤销的动作系统需要更快的识别到,而发布的动作允许更大的延时。于是,定时任务中,监控撤销配置文件表的周期可以设置为5秒,而监控发布配置文件表的周期可以设置为10秒。当然,任务周期可以在配置管理系统的设置页面中根据需求的变更进行修改;在本实施例中,在获取最新发布与撤销的配置文件列表时,可以根据自增长ID的特性,获取大于目前内存列表(包括前述的发布ID列表以及撤销ID列表)中最大ID的数据即可,这样就不需要获取这两张表中所有的数据,提高了系统效率。

步骤S520,按获取的标识,从发布的配置文件中获取其记录的指定数据交换格式(包括但不限于json格式)的字符串,并将字符串转换为发布的配置文件对应的配置文件内容,根据发布的配置文件对应的配置文件内容的类型,将发布的配置文件对应的配置文件内容写入对应类型的配置文件缓存表,和/或从配置文件缓存表中删除撤销的配置文件对应的配置文件内容。在本实施例中,由于API系统中在缓存表中保存的配置文件内容来自数据库中的若干张表(具体如图3所示),如果在发布配置文件表中仅保存配置文件ID的话,监控任务以及系统初始化时根据配置文件ID获取配置文件内容的时候,就需要读取数据库的若干张表进行内容的拼凑,效率较低。为了提高系统初始化的速度,在发布配置文件表中,除了保存配置文件的ID,还进行配置文件内容对象的json字符串的保存。这样,在监控任务和初始化时,只需要根据json字符串进行对象的转换,即可得到配置文件的内容,极大的提高了系统效率,尤其是初始化的速度。在本实施例中,为了提高配置缓存文件表的读取效率,设置了对应多种类型的配置缓存文件表,所以获取数据内容后需要按照其类型写入对应的配置缓存文件表中。

步骤S530,根据配置文件缓存表,刷新对应的接口缓存。在本实施例中,由于存在多种类型接口缓存,所以根据配置文件缓存表中的对应类型的内容,刷新相应类型的接口缓存,做到准确的刷新处理。

根据本实施例的技术方案,在不影响系统性能且不影响产品需求的前提下,去掉了对Zookeeper的依赖,为配置管理系统节约了成本,并降低了系统的复杂度,大大减轻了后续维护扩展的工作量。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体 意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1