数据的处理方法及装置、非易失性存储介质转让专利

申请号 : CN202210441982.2

文献号 : CN114567677B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 章勇李继国魏少鹏

申请人 : 北京时代亿信科技股份有限公司

摘要 :

本申请公开了一种数据的处理方法及装置、非易失性存储介质。该方法包括:在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取第二节点的数据以及版本号,其中,版本号为第二节点的数据的更新时刻;按照预设时长在第一节点通过内存介质缓存第二节点的数据以及版本号;依据第一节点通过内存介质缓存的第二节点的数据以及版本号,异步更新第一节点通过磁盘介质本地存储的第二节点的数据以及版本号;依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据;当接收到来自目标终端设备获取第一节点缓存的数据的指令时,将第一节点缓存的数据发送至目标终端设备。

权利要求 :

1.一种数据的处理方法,其特征在于,包括:

在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取所述第二节点的数据以及版本号,其中,所述版本号为所述第二节点的数据的更新时刻,所述第一节点和所述第二节点为所述通信系统中任意两个不同的节点;

按照预设时长在所述第一节点通过内存介质缓存所述第二节点的数据以及版本号;

依据所述第一节点通过内存介质缓存的所述第二节点的数据以及版本号,异步更新所述第一节点通过磁盘介质本地存储的所述第二节点的数据以及版本号;

依据所述版本号确定所述第一节点通过内存介质缓存的数据以及所述第一节点通过磁盘介质本地存储的数据;

当接收到来自目标终端设备获取所述第一节点缓存的数据的指令时,将所述第一节点缓存的数据发送至所述目标终端设备,其中,所述目标终端设备为所述终端设备中的任意一个设备。

2.根据权利要求1所述的方法,其特征在于,按照预设时长在所述第一节点缓存所述第二节点的数据以及版本号之后,所述方法还包括:在未超出所述预设时长的情况下,如果接收到访问所述第二节点的数据和所述版本号的指令,从所述第一节点的缓存数据中查询所述第二节点的数据和所述版本号。

3.根据权利要求1所述的方法,其特征在于,获取所述第二节点的数据以及版本号,包括:将所述第一节点对应的第一路由服务代理到所述第二节点对应的第二路由服务,其中,所述第一节点和所述第二节点分别预先注册到所述第一路由服务和所述第二路由服务,且所述第一路由服务中存储有所述第二路由服务的路由地址,所述第二路由服务中存储有所述第一路由服务的路由地址;

通过所述第二路由服务获取所述第二节点的数据以及版本号。

4.根据权利要求1所述的方法,其特征在于,依据所述版本号确定所述第一节点通过内存介质缓存的数据以及所述第一节点通过磁盘介质本地存储的数据,包括:在超出所述预设时长的情况下,比对所述第一节点缓存的所述版本号与所述第二节点当前时刻的版本号;

依据比对结果确定所述第一节点缓存的数据以及所述第一节点本地存储的数据。

5.根据权利要求4所述的方法,其特征在于,依据比对结果确定所述第一节点缓存的数据以及所述第一节点本地存储的数据,包括:如果第一节点缓存的所述版本号与所述第二节点当前时刻的版本号不同,获取所述第二节点当前时刻的数据和版本号;

按照所述预设时长在所述第一节点缓存所述第二节点当前时刻的数据和版本号以及在所述第一节点本地存储所述第二节点当前时刻的数据和版本号。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:

如果当前时刻与缓存时刻的时间间隔大于预设时间间隔,获取所述第二节点在当前时刻的版本号,其中,所述缓存时刻为在所述第一节点通过内存介质缓存所述第二节点的数据以及版本号的时刻;

如果所述第二节点在当前时刻的版本号与所述第一节点缓存的版本号不同,利用所述第二节点在当前时刻的版本号更新所述第一节点通过所述内存介质缓存的版本号以及所述第一节点通过所述磁盘介质本地存储的版本号。

7.根据权利要求1所述的方法,其特征在于,依据所述第一节点缓存的所述第二节点的数据以及版本号异步更新所述第一节点本地存储的所述第二节点的数据以及版本号之后,所述方法还包括:如果所述第二节点在当前时刻发生故障,判断所述第一节点缓存的所述第二节点在目标时刻的数据是否存在;

若存在,获取所述第一节点缓存的所述第二节点在所述目标时刻的数据,作为所述第二节点在所述当前时刻的数据,其中,所述目标时刻为在所述当前时刻之前且距所述当前时刻最近的时刻;

若不存在,获取所述第一节点本地存储的所述第二节点在所述目标时刻的数据,作为所述第二节点在所述当前时刻的数据。

8.一种数据的处理装置,其特征在于,包括:

获取模块,设置为在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取所述第二节点的数据以及版本号,其中,所述版本号为所述第二节点的数据的更新时刻,所述第一节点和所述第二节点为所述通信系统中任意两个不同的节点;

第一存储模块,设置为按照预设时长在所述第一节点通过内存介质缓存所述第二节点的数据以及版本号;

第二存储模块,设置为依据所述第一节点通过内存介质缓存的所述第二节点的数据以及版本号异步更新所述第一节点通过磁盘介质本地存储的所述第二节点的数据以及版本号;

确定模块,设置为依据所述版本号确定所述第一节点通过内存介质缓存的数据以及所述第一节点通过磁盘介质本地存储的数据;

发送模块,设置为当接收到来自目标终端设备获取所述第一节点缓存的数据的指令时,将所述第一节点缓存的数据发送至所述目标终端设备,其中,所述目标终端设备为所述终端设备中的任意一个设备。

9.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至7中任意一项所述的数据的处理方法。

10.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有可被所述处理器执行的计算机程序;所述处理器被配置为执行所述计算机程序,以实现权利要求1至

7中任意一项所述的数据的处理方法。

说明书 :

数据的处理方法及装置、非易失性存储介质

技术领域

[0001] 本申请涉及数据通信领域,具体而言,涉及一种数据的处理方法及装置、非易失性存储介质。

背景技术

[0002] 互联互通功能是指在空间网络中,跨平台、跨系统、跨组织流动和分享信息,形成不同组织间无障碍交流。可以实现两个及以上单位之间的人员互相交流,资源共享,业务协同。互联互通环境中不同节点之间的高效率通信尤为重要,目前,互联互通环境中不同节点之间一般采用请求直连的方式进行数据通信。
[0003] 请求直连方案是任意节点记录其它所有节点的请求地址,访问数据是通过指定的节点请求地址直接访问目标节点服务,完成数据访问。请求直连方案有可能导致其他所有节点直连一个节点的情况,在这种情况下会导致主节点压力不均衡,并发性较差。
[0004] 针对上述的问题,目前尚未提出有效的解决方案。

发明内容

[0005] 本申请实施例提供了一种数据的处理方法及装置、非易失性存储介质,以至少解决互联互通环境中不同节点之间采用请求直连的方式实现数据通信,可能导致主节点压力不均衡,并发性差的技术问题。
[0006] 根据本申请实施例的一个方面,提供了一种数据的处理方法,包括:在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取第二节点的数据以及版本号,其中,版本号为第二节点的数据的更新时刻,第一节点和第二节点为通信系统中任意两个不同的节点;按照预设时长在第一节点通过内存介质缓存第二节点的数据以及版本号;依据第一节点通过内存介质缓存的第二节点的数据以及版本号,异步更新第一节点通过磁盘介质本地存储的第二节点的数据以及版本号;依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据;当接收到来自目标终端设备获取第一节点缓存的数据的指令时,将第一节点缓存的数据发送至目标终端设备,其中,目标终端设备为终端设备中的任意一个设备。
[0007] 可选地,按照预设时长在第一节点缓存第二节点的数据以及版本号之后,上述方法还包括:在未超出预设时长的情况下,如果接收到访问第二节点的数据和版本号的指令,从第一节点的缓存数据中查询第二节点的数据和版本号。
[0008] 可选地,获取第二节点的数据以及版本号,包括:将第一节点对应的第一路由服务代理到第二节点对应的第二路由服务,其中,第一节点和第二节点分别预先注册到第一路由服务和第二路由服务,且第一路由服务中存储有第二路由服务的路由地址,第二路由服务中存储有第一路由服务的路由地址;通过第二路由服务获取第二节点的数据以及版本号。
[0009] 可选地,依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据,包括:在超出预设时长的情况下,比对第一节点缓存的版本号与第二节点当前时刻的版本号;依据比对结果确定第一节点缓存的数据以及第一节点本地存储的数据。
[0010] 可选地,依据比对结果确定第一节点缓存的数据以及第一节点本地存储的数据,包括:如果第一节点缓存的版本号与第二节点当前时刻的版本号不同,获取第二节点当前时刻的数据和版本号;按照预设时长在第一节点缓存第二节点当前时刻的数据和版本号以及在第一节点本地存储第二节点当前时刻的数据和版本号。
[0011] 可选地,上述方法还包括:如果当前时刻与缓存时刻的时间间隔大于预设时间间隔,获取第二节点在当前时刻的版本号,其中,缓存时刻为在第一节点通过内存介质缓存第二节点的数据以及版本号的时刻;如果第二节点在当前时刻的版本号与第一节点缓存的版本号不同,利用第二节点在当前时刻的版本号更新第一节点通过内存介质缓存的版本号以及第一节点通过磁盘介质本地存储的版本号。
[0012] 可选地,依据第一节点缓存的第二节点的数据以及版本号异步更新第一节点本地存储的第二节点的数据以及版本号之后,上述方法还包括:如果第二节点在当前时刻发生故障,判断第一节点缓存的第二节点在目标时刻的数据是否存在;若存在,获取第一节点缓存的第二节点在目标时刻的数据,作为第二节点在当前时刻的数据,其中,目标时刻为在当前时刻之前且距当前时刻最近的时刻;若不存在,获取第一节点本地存储的第二节点在目标时刻的数据,作为第二节点在当前时刻的数据。
[0013] 根据本申请实施例的另一方面,还提供了一种数据的处理装置,包括:获取模块,设置为在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取第二节点的数据以及版本号,其中,版本号为第二节点的数据的更新时刻,第一节点和第二节点为通信系统中任意两个不同的节点;第一存储模块,设置为按照预设时长在第一节点通过内存介质缓存第二节点的数据以及版本号;第二存储模块,设置为依据第一节点通过内存介质缓存的第二节点的数据以及版本号异步更新第一节点通过磁盘介质本地存储的第二节点的数据以及版本号;确定模块,设置为依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据;发送模块,设置为当接收到来自目标终端设备获取第一节点缓存的数据的指令时,将第一节点缓存的数据发送至目标终端设备,其中,目标终端设备为终端设备中的任意一个设备。
[0014] 根据本申请实施例的再一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的数据的处理方法。
[0015] 根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的数据的处理方法。
[0016] 在本申请实施例中,采用在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取第二节点的数据以及版本号,其中,版本号为第二节点的数据的更新时刻,第一节点和第二节点为通信系统中任意两个不同的节点;按照预设时长在第一节点通过内存介质缓存第二节点的数据以及版本号;依据版本号确定第一节点缓存的数据;依据第一节点通过内存介质缓存的第二节点的数据以及版本号,异步更新第一节点通过磁盘介质本地存储的第二节点的数据以及版本号;依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据;当接收到来自目标终端设备获取第一节点缓存的数据的指令时,将第一节点缓存的数据发送至目标终端设备,其中,目标终端设备为终端设备中的任意一个设备的方式,通过任意节点更新数据时,将数据更新时间作为版本号,查询数据时,通过请求直连的方式访问目标节点数据与版本号,并在查询节点缓存请求数据,达到了对现有的采用请求直连的方式实现互联互通环境中不同节点之间的数据通信的方法进行改进的目的,从而实现了提高数据的实时性,提高服务的并发能力的技术效果,进而解决了互联互通环境中不同节点之间采用请求直连的方式实现数据通信,可能导致主节点压力不均衡,并发性差技术问题。

附图说明

[0017] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0018] 图1示出了一种用于实现数据的处理方法的计算机终端(或移动设备)的硬件结构框图;
[0019] 图2是根据本申请实施例的一种数据的处理方法的流程图;
[0020] 图3是根据本申请实施例的一种网关路由信息同步流程图;
[0021] 图4是根据本申请实施例的一种终端设备跨节点请求数据的流程图;
[0022] 图5是根据本申请实施例的一种数据的处理装置的结构框图。

具体实施方式

[0023] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0024] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0025] 根据本申请实施例,提供了一种数据的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0026] 在背景技术中提到,目前互联互通环境中不同节点之间一般采用请求直连的方式进行数据通信。请求直连方案有可能导致其他所有节点直连一个节点的情况,在这种情况下会导致主节点压力不均衡,并发性较差。
[0027] 现有技术中,互联互通环境中不同节点之还可以采用数据定时同步的方式进行数据通信。数据定时同步方案是任意节点向中心节点推送数据更新,中心节点定时向所有子节点同步数据变化,保证数据的一致性。该方案会增加服务的复杂性,耗费资源,并且存在即时性差等缺点。
[0028] 针对上述方案的不足,本申请主要是对现有的请求直连的方案进行改进,在任意节点更新数据时,将数据更新时间作为版本号。查询数据时,通过请求直连的方式访问目标节点数据与版本号,并在查询节点缓存请求数据,缓存有效期内访问缓存数据以实现加快查询速度的效果。当缓存失效时异步对比目标节点版本号来更新本地存储数据,并目标节点发生故障时,降级访问当前节点本地存储数据,以保证当前节点的业务正常使用。
[0029] 本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据的处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置
106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
[0030] 应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
[0031] 存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据的处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0032] 传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0033] 显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
[0034] 图2是根据本申请实施例的一种数据的处理方法的流程图,如图2所示,该方法包括如下步骤:
[0035] 步骤S202,在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取第二节点的数据以及版本号,其中,版本号为第二节点的数据的更新时刻,第一节点和第二节点为通信系统中任意两个不同的节点。
[0036] 上述通信系统为背景技术中提到的互联互通环境。
[0037] 作为一个可选的实施例,互联互通环境中任意一个节点的数据变更时,同时记录节点的数据更新时间,以此作为版本号。
[0038] 需要说明的是,版本号还可以可使用其它有意义的自增数字,不做限制。
[0039] 任一个节点连接的终端设备跨节点访问目标节点数据时,通过请求直连的方式查询目标节点的数据信息和版本号。
[0040] 步骤S204,按照预设时长在第一节点通过内存介质缓存第二节点的数据以及版本号。
[0041] 在本步骤中,按照预先设定的时长在访问节点(即第一节点)通过内存介质缓存目标节点(即第二节点)的数据和版本号。
[0042] 步骤S206,依据第一节点通过内存介质缓存的第二节点的数据以及版本号,异步更新第一节点通过磁盘介质本地存储的第二节点的数据以及版本号;依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据。
[0043] 在本步骤中,通过第一节点缓存的数据异步更新第一节点通过磁盘介质本地存储的数据。避免缓存失效数据丢失的问题,可以提高数据存储的安全性。
[0044] 步骤S208,依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据。
[0045] 步骤S210,当接收到来自目标终端设备获取第一节点缓存的数据的指令时,将第一节点缓存的数据发送至目标终端设备,其中,目标终端设备为终端设备中的任意一个设备。
[0046] 在本步骤中,当第一节点连接的终端设备需要获取第一节点缓存的数据时,将第一节点缓存的数据发送给相应地终端设备。
[0047] 通过上述步骤,通过请求直连的方式访问目标节点数据与版本号,并在查询节点缓存请求数据,达到了对现有的采用请求直连的方式实现互联互通环境中不同节点之间的数据通信的方法进行改进的目的,从而实现了提高数据的实时性,提高服务的并发能力的技术效果。
[0048] 根据本申请的一个可选的实施例,执行步骤S204按照预设时长在第一节点缓存第二节点的数据以及版本号之后,在未超出预设时长的情况下,如果接收到访问第二节点数据和版本号的指令,从第一节点的缓存数据中查询第二节点的数据和版本号。
[0049] 在缓存有效期内访问目标节点的数据时,直接访问当前查询节点缓存的目标节点的数据,通过在查询节点本地缓存目标节点的数据,可以实现加快数据查询速度的技术效果。通过在查询节点增加主节点结果缓存后,还可以显著提升服务并发能力。
[0050] 此外,上述方法与数据定时同步相比,不需要增加定时任务,可以更好的保证服务的可靠性。并且不需要对数据全量的同步,只需同步基本数据加缓存,减少对磁盘空间占用,提高数据实时性。不增加额外的性能资源消耗,可以提升业务性能。
[0051] 作为一个可选的实施例,在查询节点本地缓存目标节点的数据可使用中间件类(redis、memcache等),本地内存类(Map、List等容器实现类)缓存目标节点的数据。
[0052] 根据本申请的另一个可选的实施例,执行步骤S202获取第二节点的数据以及版本号,通过以下方式实现:将第一节点对应的第一路由服务代理到第二节点对应的第二路由服务,其中,第一节点和第二节点分别预先注册到第一路由服务和第二路由服务,且第一路由服务中存储有第二路由服务的路由地址,第二路由服务中存储有第一路由服务的路由地址;通过第二路由服务获取第二节点的数据以及版本号。
[0053] 在本步骤中,通过在当前查询节点存储其他节点的地址,由于所有的节点服务是注册到节点路由服务的,节点路由服务之间注册信息共享,因此,第一节点通过对应的第一路由服务代理到第二节点对应的第二路由服务,去获取第二节点数据。
[0054] 追加节点路由服务的目的是,不直接暴露真实子节点服务的地址,这样子节点就不需要记住其它所有节点的地址,只需要注册到自己的路由服务,由路由服务之间互相记住对方的路由地址。访问时通过自己的路由服务代理到目标节点的路由服务,再代理到目标节点的服务。
[0055] 在本申请的一些可选的实施例中,执行步骤S208依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据,包括以下步骤:在超出所述预设时长的情况下,比对第一节点缓存的版本号与第二节点当前时刻的版本号;依据比对结果确定第一节点缓存的数据以及第一节点本地存储的数据。
[0056] 作为一个可选的实施例,依据比对结果确定所述第一节点缓存的数据以及第一节点本地存储的数据,通过以下方法实现:如果第一节点缓存的版本号与第二节点当前时刻的版本号不同,获取第二节点当前时刻的数据和版本号;按照预设时长在第一节点缓存第二节点当前时刻的数据和版本号以及在第一节点本地存储第二节点当前时刻的数据和版本号。
[0057] 在上文中提到,在缓存有效期内访问目标节点的数据时,直接访问当前节点缓存的目标节点的数据。同时如果超出缓存有效期,对比查询节点本地缓存的目标节点的版本号与目标节点当前时刻的版本号,如果不一致,通过请求直连的方式查询目标节点的数据,并将查询到的数据同步到节点缓存及本地存储。
[0058] 图3是根据本申请实施例的一种网关路由信息同步流程图,如图3所示,网关路由信息同步流程包括以下步骤:
[0059] 1)先启动所有子网关的服务;
[0060] 2)启动网关A,版本号默认为0;
[0061] 3)启动网关B,每30秒心跳网关A,默认版本号为0;
[0062] 4)启动网关C,每30秒心跳网关B(或者网关A,后面流程心跳网关B),默认版本号为0;
[0063] 5)依次启动节点服务;
[0064] 6)启动节点服务器A,注册到网关A,修改网关A的版本号为当前注册时间;
[0065] 7)若网关A的版本号大于网关B的版本号,30秒后,网关B同步网关A的路由信息和版本号,同理,网关C同步网关B的路由信息和版本号;
[0066] 8)节点服务C注册到网关C,修改网关C的版本号为当前注册时间;
[0067] 9)若网关C的版本号大于网关B的版本号,30秒后,网关C推送路由信息和版本号到网关B,同理网关B推送路由信息和版本号到网关A;
[0068] 10)节点服务B注册到网关B,修改网关B的版本号为当前注册时间;
[0069] 11)若网关B的版本号大于网关A的版本号,30秒后,网关B推送路由信息和版本号到网关A,同理网关C同步网关B的路由信息和版本号。
[0070] 根据本申请的一个可选的实施例,如果当前时刻与缓存时刻的时间间隔大于预设时间间隔,获取第二节点在当前时刻的版本号,其中,缓存时刻为在第一节点通过内存介质缓存第二节点的数据以及版本号的时刻;如果第二节点在当前时刻的版本号与第一节点缓存的版本号不同,利用第二节点在当前时刻的版本号更新第一节点通过内存介质缓存的版本号以及第一节点通过磁盘介质本地存储的版本号。
[0071] 作为一个可选的实施例,通过设置预设时间间隔,定时更新第一节点通过内存介质缓存的版本号以及第一节点通过磁盘介质本地存储的版本号。例如,当前时刻和上一次缓存版本号的时刻之间的时间间隔大于预设时长,获取第二节点的版本号,然后和第一节点最新缓存的版本号比对,如果相同,不做处理;如果不同,利用获取的第二节点的版本号更新第一节点缓存的版本号以及本地存储的版本号。
[0072] 在一个可选的实施例中,可以使用线程以及消息队列的方式在查询节点缓存目标节点不同时刻的数据和版本号。通过队列方式存储数据,可以保证当前查询节点数据的完整性。
[0073] 根据本申请的另一个可选的实施例,执行步骤S206依据第一节点缓存的第二节点的数据以及版本号异步更新第一节点本地存储的第二节点的数据以及版本号之后,如果第二节点在当前时刻发生故障,判断第一节点缓存的第二节点在目标时刻的数据是否存在;若存在,获取第一节点缓存的第二节点在目标时刻的数据,作为第二节点在当前时刻的数据,其中,目标时刻为在当前时刻之前且距当前时刻最近的时刻;若不存在,获取第一节点本地存储的第二节点在目标时刻的数据,作为第二节点在当前时刻的数据。
[0074] 在一个可选的实施例中,当目标节点发生故障不能提供服务时,使用查询节点缓存或者本地存储的数据降级处理,以保证不影响子节点的使用。例如,目标节点在t1时刻发生故障,由于在查询节点通过队列存储有目标节点在不同时刻的数据,并且不同时刻对应不同的版本号,可以根据版本号获取t1时刻之前t2时刻的数据供查询节点使用,以保证查询节点的业务正常使用。
[0075] 具体实施时,首先查询本地节点通过内存介质缓存的t2时刻的数据是否存在,若存在,获取本地节点通过内存介质缓存的t2时刻的数据供查询节点使用;若不存在,获取本地节点通过磁盘介质本地存储的t2时刻的数据供查询节点使用
[0076] 通过增加版本号对比及本地存储补偿机制,可以明显增加服务的可靠性。
[0077] 下面结合具体的实施例对方法进行说明,图4是根据本申请实施例的一种终端设备跨节点请求数据的流程图,如图4所示,包括以下步骤:
[0078] 1)终端A发起携带路由C标识的通讯录访问请求;
[0079] 2)请求进入节点服务A,通过路由C标识先在节点服务A的缓存中查询C企业的通讯录数据(缓存时间、版本号以及数据);
[0080] 3)缓存存在,并且当前时刻与缓存时刻之间的时间间隔小于预设时长(例如,3分钟),返回缓存的C企业的通讯录数据;
[0081] 4)缓存失效或者当前时刻与缓存时刻之间的时间间隔大于预设时长,请求路由A转发访问请求;
[0082] 5)A路由没有路由C信息,查询本地存储;
[0083] 6)A路由存在路由C信息,转发到路由C,再转发到节点服务C;
[0084] 7)节点服务C查看本地的版本号与请求的版本号是否一致;
[0085] 8)若版本号一致,修改节点服务A缓存数据中的缓存时间,并返回节点服务A中缓存的C企业的通讯录数据;
[0086] 9)若版本号不一致,查询节点服务C中的C企业的通讯录数据;
[0087] 10)更新节点服务A中缓存的C企业的通讯录数据(缓存时间、版本号以及数据);
[0088] 11)同时异步更新A节点本地存储中的C企业的通讯录数据及版本号。
[0089] 图5是根据本申请实施例的一种数据的处理装置的结构框图,如图5所示,该装置包括:
[0090] 获取模块50,设置为在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取第二节点的数据以及版本号,其中,版本号为第二节点的数据的更新时刻,第一节点和第二节点为通信系统中任意两个不同的节点。
[0091] 第一存储模块52,设置为按照预设时长在第一节点通过内存介质缓存第二节点的数据以及版本号。
[0092] 第二存储模块54,设置为依据第一节点通过内存介质缓存的第二节点的数据以及版本号异步更新第一节点通过磁盘介质本地存储的第二节点的数据以及版本号;
[0093] 确定模块56,设置为依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据。
[0094] 发送模块58,设置为当接收到来自目标终端设备获取第一节点缓存的数据的指令时,将第一节点缓存的数据发送至目标终端设备,其中,目标终端设备为终端设备中的任意一个设备。
[0095] 需要说明的是,图5所示实施例的优选实施方式可以参见图2所示实施例的相关描述,此处不再赘述。
[0096] 本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的数据的处理方法。
[0097] 上述非易失性存储介质用于存储执行以下功能的程序:在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取第二节点的数据以及版本号,其中,版本号为第二节点的数据的更新时刻,第一节点和第二节点为通信系统中任意两个不同的节点;按照预设时长在第一节点通过内存介质缓存第二节点的数据以及版本号;依据第一节点通过内存介质缓存的第二节点的数据以及版本号,异步更新第一节点通过磁盘介质本地存储的第二节点的数据以及版本号;依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据;当接收到来自目标终端设备获取第一节点缓存的数据的指令时,将第一节点缓存的数据发送至目标终端设备,其中,目标终端设备为终端设备中的任意一个设备。
[0098] 本申请实施例还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的数据的处理方法。
[0099] 上述处理器用于运行执行以下功能的程序:在通信系统中的第一节点连接的终端设备跨节点访问第二节点的数据时,获取第二节点的数据以及版本号,其中,版本号为第二节点的数据的更新时刻,第一节点和第二节点为通信系统中任意两个不同的节点;按照预设时长在第一节点通过内存介质缓存第二节点的数据以及版本号;依据第一节点通过内存介质缓存的第二节点的数据以及版本号,异步更新第一节点通过磁盘介质本地存储的第二节点的数据以及版本号;依据版本号确定第一节点通过内存介质缓存的数据以及第一节点通过磁盘介质本地存储的数据;当接收到来自目标终端设备获取第一节点缓存的数据的指令时,将第一节点缓存的数据发送至目标终端设备,其中,目标终端设备为终端设备中的任意一个设备。
[0100] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0101] 在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0102] 在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0103] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0104] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0105] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0106] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。