一种缓存数据的更新方法、数据使用端和系统的制作方法_2

文档序号:8223640阅读:来源:国知局
,缓存数据更新通知是由数据变更端发起,即数据变更端更新数据库中配置数据后,经由配置服务器向数据使用端发起缓存数据更新通知,能够保证一旦发生配置数据变更,使用者可以立刻得到通知消息进行缓存更新动作。
【附图说明】
[0036]图1是本发明实施例提供的缓存数据更新方法流程图;
[0037]图2是本发明另一实施例提供的缓存数据更新方法流程图;
[0038]图3是本发明实施例提供的数据使用端所在架构示意图;
[0039]图4是本发明实施例提供的数据使用端的结构示意图;
[0040]图5是本发明实施例提供的缓存数据更新系统的结构示意图。
【具体实施方式】
[0041]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]如图1所示,本发明实施例提供了一种缓存数据的更新方法,数据使用端初始化形成缓存数据对象的主用槽位和备用槽位,该方法可以包括以下步骤:
[0043]步骤101:数据使用端从数据库加载配置数据,构造缓存数据对象,将缓存数据对象缓存在当前的主用槽位中,形成槽位索引,指向该当前的主用槽位;
[0044]步骤102:当触发缓存数据的更新时,数据使用端从数据库加载更新后的配置数据,构造更新后的缓存数据对象,保留当前主用槽位中的缓存数据,并将更新后的缓存数据对象缓存在备用槽位中;然后,将当前主用槽位切换为备用槽位,当前备用槽位切换为主用槽位,将槽位索引的指向更新为切换后的当前主用槽位。
[0045]根据上述实施例,缓存数据的更新时,所述数据库使用端保留当前主用槽位中的缓存数据,并将更新的缓存数据对象缓存在备用槽位中,并不会影响当前主槽位中的缓存数据;当缓存数据对象更新过程中或更新失败,数据使用端仍可调用当前主槽位中的缓存数据,保证了业务处理有可用的缓存数据。
[0046]如图2所示,本发明另一实施例提供了一种缓存数据的更新方法,数据变更端通过配置服务器向数据使用端发送更新通知,数据使用端初始化形成缓存数据对象的主用槽位和备用槽位,该方法可以包括以下步骤:
[0047]步骤201:配置服务器接收并保存数据使用端发送的注册信息,
[0048]所述注册信息包括:所述数据使用端的IP地址、通知接收端口号、使用配置数据的名称信息;
[0049]步骤202:所述配置服务器根据所述注册信息,生成对应的配置数据版本号,
[0050]所述配置数据版本号包括:配置数据名称和版本号字符串;
[0051]步骤203:所述配置服务器将所述配置数据版本号发送给所述数据使用端;
[0052]步骤204:所述数据使用端接收所述配置数据版本号,并根据所述配置数据版本号,从数据库加载配置数据构造缓存数据对象;
[0053]步骤205:所述配置服务器判断所述数据使用端加载配置数据构造缓存数据对象是否成功,如果是,则执行步骤206,否则,执行步骤207
[0054]步骤206:所述配置服务器触发所述数据使用端将所述缓存数据对象存入主缓存对象槽位,并形成一个槽位索引指向所述当前主缓存对象槽位,并接收所述数据使用端更新的信息;
[0055]步骤207:所述配置服务器删除所述数据使用端对应的信息;
[0056]值得说明的是,本发明中,所述主用槽位和备用槽位是通过2个元素的数据组来实现的;
[0057]步骤208:数据变更端发送新的配置数据版本号给所述配置服务器;
[0058]在此过程中,数据变更端在完成数据库内的配置数据更新后,生成对应的一个新的配置数据版本号,并将更新的配置数据名称和新的配置数据版本号发送给配置服务器。
[0059]所述配置数据名称一般定义为模块名+配置细项名称,其中,模块名为特定的模块名称,如alarm、topo、gis、relat1n等;配置细项名称为实际配置数据的名称,如alarm_standard_rule、relat1n_rule、derive_rule 等。
[0060]步骤209:所述配置服务器接收数据变更端发送的新的配置数据版本号,
[0061]即所述配置服务器维护系统内所有配置数据的最新版本号,通过步骤208和步骤209可知,缓存数据更新通知是由数据变更端发起,能够保证一旦发生配置数据变更,使用者可以立刻得到通知消息进行缓存更新动作,保证了缓存数据及时更新。
[0062]步骤210:所述配置服务器遍历当前注册的数据使用端,查找使用了所述配置数据的所有数据使用端,向查找到的所有数据使用端发送更新所述配置数据版本号通知;
[0063]步骤211:所述数据使用端接手所述更新配置数据版本号通知,开启新的线程,根据所述新的配置数据版本号,从所述数据库加载新的配置数据构造新的缓存数据对象存入备用缓存对象槽位;
[0064]在本发明中,本实施例所述数据使用端具有通知接手端口,通过启动socket监听,监听所述通知接收端口用以接收所述配置服务器的数据更新通知,而所述数据使用端根据所述配置数据版本号从数据库中获取配置数据并构造缓存数据对象,则是通过一个回调函数来完成;
[0065]步骤212:判断所述数据使用端是否完成所述加载新的配置数据构造新的缓存数据对象存入备用缓存数据对象槽位,如果是,则执行步骤213,否则执行步骤214 ;
[0066]步骤213:备用缓存数据对象槽位成为当前主用缓存数据对象槽位,更新所述槽位索引指向当前主用缓存数据对象槽位;
[0067]步骤214:所述槽位索引不变,仍然指向所述主用缓存数据对象槽位。
[0068]通过上述实施例可知,本发明中,主槽位用于缓存当前业务处理过程中所用的缓存数据,备用槽位用于缓存数据库加载更新后的配置数据,即备用槽位缓存数据更新过程不会影响主槽位中缓存数据的应用,因此,在缓存数据更新过程中或者缓存数据更新失败,业务均可连续处理,从而有效提高了业务处理效率。
[0069]另外,本发明所述配置服务器主要采取请求应答模型,处理数据使用端的注册和更新请求以及配置数据变更端的更新缓存数据请求,处理过程简单。例如:多个数据使用端注册到配置服务器时,配置服务器维护当前所有注册数据使用端形成列表,每个数据使用端保存在配置服务器中的信息包含数据使用端的IP地址、通知消息接收端口号、所缓存配置数据名称及版本号,另外还保存了配置服务器下发的版本号信息及下发版本号更新状态,并在当前注册数据使用者列表中增加相应项。另外,当数据使用端注销时,配置服务器从当前注册数据使用端列表中删除对应的项。
[0070]如图3、图4所示,本发明实施例提供了一种缓存数据的数据使用端。数据使用端实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例所述数据使用端所在设备的一种硬件结构图,除了图3所示的CPU、内存、网络接口、以及非易失性存储器之外,实施例中数据使用端所在的设备通常还可以包括其他硬件,如负责槽位索引转换更新的芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的缓存数据的数据使用端40包括:
[0071]形成单元401,用于初始化形成缓存数据对象的主用槽位和备用槽位,
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1