数据传输方法及装置与流程

文档序号:11064826阅读:335来源:国知局
数据传输方法及装置与制造工艺

本发明涉及互联网技术领域,具体而言,涉及一种数据传输方法及装置。



背景技术:

随着网络技术的发展,有些不法分子可能借助于网络平台,发布一些危害社会的信息内容,比如涉黄、涉赌、涉暴以及涉恐内容等,这将给社会带来不利的影响,因而,可能需要对网络内容进行监控,当发现这些不利信息时,可以对其进行屏蔽,以尽量减少该不利信息的传播。

在相关技术中,网络内容监控系统,一般包括两个系统(可以表现为两个设备),比如,系统A和系统B,系统B需要同步系统A中的数据,在相关技术中,每次同步需要同步所有的数据信息,这样可能会导致数据库读超时,或者而当系统A与系统B处于不同网络环境时、系统A提供的全量数据过大、系统B内存使用过多时,会造成系统B从系统A全量更新数据频繁失败。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据传输方法及装置,以至少解决系统之间进行全量更新数据时频繁失败的技术问题。

根据本发明实施例的一个方面,提供了一种数据传输方法,包括:第一设备定时接收来自第二设备的请求消息,其中,该请求消息中携带有与本次接收的请求消息对应的时间戳;第一设备判断时间戳的取值是否小于预设阈值;在时间戳的取值小于预设阈值时,第一设备按照时间戳与第一设备在本地缓存的分片数据的对应关系,将与时间戳对应的分片数据同步至第二设备,其中,分片数据为对第一设备记录的全量数据进行分片得到。

根据本发明实施例的另一方面,还提供了一种数据传输方法,包括:第二设备向第一设备发送请求消息,其中,该请求消息中携带有与请求消息对应的时间戳;在时间戳的取值小于预设阈值的情况下,第二设备接收第一设备发送的分片数据;其中, 分片数据是与时间戳对应的在第一设备本地缓存的分片数据,上述分片数据为对第一设备记录的全量数据进行分片得到。

根据本发明实施例的另一方面,还提供了一种数据传输装置,应用于第一设备,包括:接收模块,用于定时接收来自第二设备的请求消息,其中,该请求消息中携带有与本次接收的请求消息对应的时间戳;第一判断模块,用于判断时间戳的取值是否小于预设阈值;第一同步模块,用于在时间戳的取值小于预设阈值时,按照时间戳与第一设备在本地缓存的分片数据的对应关系,将与时间戳对应的分片数据同步至第二设备,其中,分片数据为对第一设备记录的全量数据进行分片得到。

根据本发明实施例的另一方面,还提供了一种数据传输装置,应用于第二设备,包括:发送模块,用于向第一设备发送请求消息,其中,该请求消息中携带有与请求消息对应的时间戳;第一接收模块,用于在时间戳的取值小于预设阈值的情况下,接收第一设备发送的分片数据;其中,分片数据是与时间戳对应的在第一设备本地缓存的分片数据,上述分片数据为第一设备记录的全量数据进行分片得到。

在本发明实施例中,采用第一设备将时间戳对应的第一设备在本地缓存的分片数据同步到第二设备,其中,所述分片数据为对所述第一设备记录的全量数据进行分片得到的方式,即通过将全量数据进行缓存分片的方式,然后根据接收的请求消息中的时间戳,将该时间戳对应的缓存中的分片数据依次同步到第二设备的方式,降低了数据读取的压力,进而解决了系统之间进行全量更新数据时频繁失败的技术问题,提高了数据传输的效率。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种数据传输方法的计算机终端的硬件结构框图;

图2是根据本发明实施例1的数据传输方法的流程图一;

图3是根据本发明实施例1的数据传输方法的流程图二;

图4是根据本发明可选实施例的第一设备分片缓存全量数据的流程示意图;

图5是根据本发明可选实施例的数据传输方法的流程示意图;

图6是根据本发明实施例2的数据传输方法的流程图一;

图7是根据本发明实施例2的数据传输方法的流程图二;

图8是根据本发明实施例3的数据传输装置的结构框图一;

图9是根据本发明实施例3的数据传输装置的结构框图二;

图10是根据本发明实施例3的数据传输装置的结构框图三;

图11是根据本发明实施例3的数据传输装置的结构框图四;

图12是根据本发明实施例4的数据传输装置的结构框图一;

图13是根据本发明实施例4的数据传输装置的结构框图二;

图14是根据本发明实施例4的数据传输装置的结构框图三;

图15是根据本发明实施例的一种计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在相关技术中,在网络内容监控和屏蔽领域中,设备之间数据传输的主要步骤如下:

1.当第二设备启动时,第一次从第一设备读取统一资源定位符ur l/域名阻断记录;

2.该次读取统一资源定位符ur l/域名阻断记录是全量更新的方式,第二设备发送的请求会带时间戳参数,值为0;

3.第一设备收到时间戳参数值为0的请求后,会将当前数据库中所有ur l/域名阻断记录读出,并加上当前时间值(精确到分钟),一并返回给第二设备;

4.第二设备收到全量ur l/域名阻断记录后,清空系统内的所有阻断记录,改为使用收到的全量ur l/域名阻断记录;

5.1分钟后,第二设备判断当前时间是否整点或半点。如果是,则执行2;如果不是,则发送请求给第一设备,带时间戳参数是3中第一设备返回的时间值;

6.第一设备收到时间戳参数值不为0的请求后,会将数据库中从时间戳指定时间到当前时间的变化数据读出,并加上当前时间值(精确到分钟),一并返回给第二设备;

7.第二设备收到增量ur l/域名阻断记录后,对系统内的所有阻断记录做更新;然后执行5。

当上述第一设备的ur l/域名阻断数据到达千万级别时,会出现如下问题:第一设备实时从数据库全量读取ur l/域名阻断数据时,会造成读数据库超时;当第一设备与第二设备处于不同网络环境,网络链路不稳定;千万级别的全量ur l/域名阻断记录会延长数据传输时间,经常造成全量数据传输失败;第二设备服务器内存有限,当自身内存使用较多时,全量ur l/域名阻断记录的换入换出,经常造成内存报警。

为了方便理解本发明,以下对本发明实施例中所涉及的术语进行简单解释:

增量同步方式:系统A维护一批实时变化的数据,系统B需要使用系统A维护的这批数据;当系统B访问系统A读取数据时,系统A只将系统B上次访问与这次访问之间的数据变化量发送给系统B,这种数据同步方式叫做增量同步方式。

全量同步方式:系统A维护一批实时变化的数据,系统B需要使用系统A维护的这批数据;当系统B访问系统A读取数据时,系统A将当前所有数据发送给系统B,这种数据同步方式叫做全量同步方式。

本发明实施例对第一设备与第二设备的阻断记录的全量更新过程做了优化,使用增量同步方式来模拟全量同步方式,以避免出现以上问题。以下结合具体实施例详细说明。

实施例1

根据本发明实施例,还提供了一种数据传输的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行 所示出或描述的步骤。

本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据传输方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据传输方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据传输方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图2所示的数据传输方法。图2是根据本发明实施例1的数据传输方法的流程图一,如图2所示,该方法包括:

步骤S202,第一设备定时接收来自第二设备的请求消息,其中,该请求消息中携带有与本次接收的请求消息对应的时间戳;

可选地,第一设备可以为上述运行环境中的计算机终端10,通过上述计算机终端10来完成第一设备的功能进而实现本实施例中的数据传输方法。

需要说明的是,定时接收来自第二设备的请求消息中的定时可以是按照实际情况进行设定,两次接收的请求消息的时间间隔可以是固定的,比如设定每隔一分钟接收一次请求消息,也可以是不固定的,比如一分钟后接收第二次请求消息,再过三分钟 后接收第三次请求消息,具体的可以根据实际情况进行设定。

步骤S204,第一设备判断时间戳的取值是否小于预设阈值;

需要说明的是,上述第一设备和第二设备可以表现为两个物理实体,也可以表现为两个应用,但不限于此。上述时间戳的取值可以是单纯的序号比如阿拉伯数字,也可以是时间值,但不限于此。

上述时间戳的取值可以是指定值,用于指示读取第一设备中的全量数据;在一个可选的实施例中,上述指定值可以是0,即在请求消息中携带的时间戳的取值为0时,指示第二设备应当读第一设备的全量数据。

在一个可选实施例中,在步骤S204之前,需要判断上述时间戳的取值是否为上述指定值,以及在判断结果为是时,触发将与该时间戳对应的分片数据同步至所述第二设备。在时间戳的取值为上述指定值的情况下,可以触发第一设备开始将全量数据中的第一个分片数据同步到第二设备。

步骤S206,在时间戳的取值小于预设阈值时,第一设备按照时间戳与第一设备在本地缓存的分片数据的对应关系,将与时间戳对应的分片数据同步至第二设备,其中,分片数据为对第一设备记录的全量数据进行分片得到。

需要说明的是,上述预设阈值可以是对上述全量数据进行分片后得到的分片数量,当然也可以是其他的值,一般该预设阈值可设置为小于10;上述全量数据可以是针对统一资源定位符ur l的阻断记录,也可以是针对域名的阻断记录,也可以是两者的组合,并不限于此。

上述分片数据可以通过以下方式在第一设备中得到:将第一设备的数据库中与第一索引n对应的分片数据,写入本地缓存,并将n-1作为分片数据在第一设备的本地缓存中的索引,其中,n小于或者等于对全量数据进行分片后得到的所有分片数据的总数量N,n、N均为正整数。在一个可选实施例中,将第一设备的数据库中与第一索引n对应的分片数据,写入本地缓存,并将n-1作为分片数据在第一设备的本地缓存中的索引具体为:第一设备判断n是否小于N;在n小于N的情况下,第一设备从数据库中读取n对应的分片数据,并在n对应的分片数据上附上值为n的时间戳;在n等于N的情况下,第一设备从数据库中读取与n对应的分片数据,并在与n对应的分片数据上附上值为指定时刻的时间戳;其中,该指定时刻为第二设备上一次访问第一设备的时刻;第一设备将与n对应的分片数据写入本地缓存,并将n-1作为分片数据在本地缓存中的索引。

需要说明的是,进行缓存的方式可以是按照发送格式进行分片缓存,因而在第二 设备需要读取时,第一设备不需要再对分片数据进行格式的转变,而是直接返回给第二设备,降低了同步的时间,提高了同步的效率。

通过将第一设备中的全量数据进行分片后缓存在第一设备的本地缓存中,在缓存中缓存的每份分片数据都有对应的一个索引,该索引与第二设备发送的请求消息中的时间戳具有一定的对应关系,通过该时间戳与缓存中的分片数据的对应关系,将全量数据分片的分片数据同步到第二设备中,在本发明一个可选实施例中,步骤S206中的将与时间戳对应的分片数据同步至第二设备可以表现为:第一设备以时间戳的取值作为索引,将第一设备的本地缓存中与索引对应的指定分片数据同步至第二设备。

通过上述步骤,通过将全量数据进行缓存分片的方式,然后根据接收的请求消息中的时间戳,按照时间戳与缓存中的分片数据的关系,将该时间戳对应的缓存中的分片数据依次同步到第二设备的方式,降低了数据读取的压力,进而解决了系统之间进行全量更新数据时频繁失败的技术问题,提高了数据传输的效率。

举个例子:第一设备的数据库中通常记录了千万级别的数据记录,此处为了方便理解,以较少数据记录(80条记录)为例,在第一设备接收到携带时间戳为0的请求消息后,按照相关技术中的方式,则第一设备将该80条记录一次性全部同步给第二设备。而在本实施例中,第一设备对该80条记录进行分片,分片可以进行均等分配也可以进行不均等分配,以均等分配为例,分为4片,每个分片有20条记录,将每个分片所包含的数据写入缓存,并设置缓存中的4个分片数据对应的索引0、1、2、3;当第二设备请求读取第一设备的全量数据时,第一次请求中携带的时间戳为0,则第一设备将缓存中以0为索引的分片数据同步至第二设备;一段时间后(比如1分钟),第一设备接收第二次请求,该第二次请求中携带时间戳为1,则第一设备将缓存中以1为索引的分片数据同步至第二设备;以此类推,直至将缓存中的分片数据读取完毕。即本实施例通过将全量数据进行分片,将分片后的数据依次同步至第二设备,即将全量数据分批同步至第二设备,相对于相关技术中的方案能够降低数据的读取压力,缩短数据的传送时间,提高了数据的传输效率。

在一个可选实施例中,图3是根据本发明实施例1的数据传输方法的流程图二,如图3所示,上述方法还包括:

步骤S302,在时间戳的取值等于或者大于预设阈值时,第一设备将从时间戳指示的时间至当前时间产生的增量数据同步至第二设备。

需要说明的是,在本发明实施例中,存在两类时间戳,第一类时间戳可以是上述图2所示实施例中的时间戳,该时间戳可以起到读取全量数据中的分片数据的索引标 识的作用,其可以是用个位数字比如0、1、2等表示;第二类时间戳可以是真实的时间戳,其表示一个真实的时间,即第二设备最近一次访问第一设备的时间,其可以通过一个9位的数字表示,即第二类时间戳既可以起到标识的作用,也可以表示一个真实的时间。由于上述预设阈值一般为分片数据,其不可能是个很大的数字,因而可以用9位数字表示真实时间戳的第二类时间戳的取值一般是大于上述预设阈值的(即步骤S302中的等于或者大于预设阈值的时间戳),因而可以将该第二类时间戳作为一次全量数据读取结束的标识,或者是一个正常的增量数据读取的触发标识。

需要说明的是,步骤S302中,时间戳的取值大于或者等于预设阈值,表示第二设备发送的请求是一次正常的增量数据读取请求,此时,需要将第二设备最近一次访问第一设备的时刻(即上述的时间戳指示的时间)至当前时间之间的增量数据传输至第二设备,在后续的时间里第一设备一直以正常的增量同步方式将增量数据同步至第二设备,直到时间点为整点或者半点为止,即直到收到第一设备以全量同步方式将数据同步至第二设备的指示为止,以此类推。

需要说明的是,在本发明的实施例中,上述第一设备与第二设备之间的数据通信可以使用http协议,但不限于此。上述方法可以应用于网络内容的监控与屏蔽领域,比如,第一设备对网络的内容比如涉黄、涉毒、涉暴以及涉恐内容等进行监控,或者其他设备对该内容进行监控,当监控到这些内容后,将该内容对应的网页的统一资源定位符或者该内容出现的计算机所在的域名记录下来,然后将这些数据通过本发明实施例的方法同步到第二设备,第二设备可以再传输给其他设备或者第二设备本身根据获得到统一资源定位符或者域名对这些内容进行屏蔽。

为了更好的理解本发明,以下结合可选的实施例对本发明做进行一步的解释。

在一个可选实施例中,第一设备每30分钟对第一设备的数据库中的全量ur l/域名进行一次分片缓存,来解决实时从数据库全量读取记录时造成的读取超时等问题。图4是根据本发明可选实施例的第一设备分片缓存全量数据的流程示意图,如图4所示,包括以下步骤:

步骤S402,设定该次全量ur l/域名阻断记录的分片数量(例如4),该分片数量小于10;

步骤S404,读取当前时间,精确到分钟,记录在timestamp中;

步骤S406,根据timestamp的值,读取当前时间数据库中全量记录数量(例如81);

步骤S408,根据分片数量,计算全量记录的每个分片中包含的记录数(例如20、20、20、21);

步骤S410,设置分片计数index(即上述实施例中的第一索引n),值为1;

步骤S412,判断当前index值是否小于分片数量(相当于上述实施例中的分片数据的总数量N);是(例如1),则执行步骤S414;不是(例如4),则执行步骤S422;

步骤S414,从数据库中读取与index对应的指定分片包含的数据;

步骤S416,附上时间戳,值为index;

步骤S418,将分片数据与时间戳写入缓存,key值为index–1(相当于上述实施例中的n-1);

步骤S420,分片计数index增加1;返回步骤S412执行;

步骤S422,从数据库中读取与index对应的指定分片包含的数据;

步骤S424,附上时间戳,值为timestamp(相当于上述实施例中的指定时刻);

步骤S426,将分片数据与时间戳写入缓存,key值为index-1。

第二设备从第一设备读取全量阻断记录时,第一设备将已有全量阻断记录缓存分批返回给第二设备,以解决大数据量一次性传送时可能导致的网络问题与第二设备内存使用等问题。图5是根据本发明可选实施例的数据传输方法的流程示意图,如图5所示,以4片缓存为例,该方法包括以下步骤:

步骤S501,第二设备向第一设备发起请求,读全量阻断记录,时间戳为0;

步骤S502,第一设备判断时间戳为0,是全量更新阻断记录,以0为key在全量阻断记录的缓存中读取第一片缓存中的分片数据,并附带时间戳为1,返回给第二设备;

步骤S503,第二设备清空系统内阻断记录,并使用收到的全量阻断记录的第一片缓存中的分片数据;

步骤S504,1分钟后,第二设备向第一设备发起请求,读取增量阻断记录,时间戳为步骤S502中第一设备返回的1;

步骤S505,第一设备判断时间戳小于10,是未完的全量更新阻断记录,以1为key在全量阻断记录的缓存中读取第二片缓存中的分片数据,附带时间戳2,返回给第二设备;

步骤S506,第二设备将收到的第二片缓存中的分片数据,增加到已有阻断记录中;

步骤S507,1分钟后,第二设备向第一设备发起请求,读取增量阻断记录,时间 戳为步骤S505中第一设备返回的2;

步骤S508,第一设备判断时间戳小于10,是未完的全量更新阻断记录,以2为key在全量阻断记录的缓存中读取第三片缓存中的分片数据,附带时间戳3,返回给第二设备;

步骤S509,第二设备将收到的第三片缓存中的分片数据,增加到已有阻断记录中;

步骤S510,1分钟后,第二设备向第一设备发起请求,读取增量阻断记录,时间戳为步骤S508中第一设备返回的3;

步骤S511,第一设备判断时间戳小于10,是未完的全量更新阻断记录,以3为key在全量阻断记录的缓存中读取第四片缓存中的分片数据,附带时间戳为全量阻断记录缓存的生成时间timestamp,返回给第二设备;

步骤S512,第二设备将收到的第四片缓存中的分片数据,增加到已有阻断记录中;

步骤S513,1分钟后,第二设备向Mrm发起请求,读取增量阻断记录,时间戳为步骤S511中第一设备返回的timestamp;

步骤S514,第一设备Mrm判断时间戳大于10,是一次正常的增量阻断记录请求,读数据库中timestamp到当前时间的阻断记录变化量,附带当前时间,返回给第二设备;

后续每分钟,第二设备都做增量阻断记录请求;如果是整点或半点,则第二设备不做增量阻断记录请求,而返回执行步骤S501。

需要说明的是,在本发明图5所示的可选实施例中的1分钟相当于上述实施例图2所示实施例的定时,上述时间戳为0相当于图2所示实施例中的时间戳的取值为指定值,来指示读全量阻断记录,上述实施例中的时间戳为0、1、2、3相当于图2所示实施例中的时间戳的取值;上述key相当于图2所示实施例中的索引,上述timestamp相当于图3所示实施例中的取值等于或者大于预设阈值的时间戳。

在上述实施例中,同步分为两种,增量同步方式和全量同步方式,全量同步方式同步数据是这样实现的:通过预先将全量数据提前进行分片缓存,在第二设备进行读取的时候,直接使用分片缓存中的分片数据,即根据全量数据分片的数量N,通过N次模拟增量同步方式实现全量数据同步的,降低了数据读取压力,在第一设备第一次同步给第二设备时,也不会因为数据量过大而同步失败。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系 列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

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

实施例2

根据本发明实施例,还提供了一种数据传输方法,图6是根据本发明实施例2的数据传输方法的流程图一,如图6所示,该方法包括:

步骤S602,第二设备向第一设备发送请求消息,其中,该请求消息中携带有与请求消息对应的时间戳;

需要说明的是,上述第二设备可以是与上述实施例1中的计算机终端10的结构相同的一个计算机终端,在该计算机终端的环境中完成本实施例中的数据传输方法,但不限于此。上述发送请求消息可以是定时发送请求消息,可以是不定时发送请求消息,可以根据具体的情况进行具体设定。

步骤S604,在时间戳的取值小于预设阈值的情况下,第二设备接收第一设备发送的分片数据;其中,分片数据是与时间戳对应的在所述第一设备本地缓存的分片数据,上述分片数据为对第一设备记录的全量数据进行分片得到。

上述时间戳的取值可以是指定值,用于指示第二设备读取第一设备中的全量数据;在一个可选的实施例中,上述指定值可以是0,即在请求消息中携带的时间戳为0时,指示第二设备应当读第一设备的全量数据。在一个可选的实施例中,在步骤S604之前,上述方法还包括:在时间戳为指定值的情况下,第二设备触发第一设备发送全量数据,接收第一设备发送的与指定值对应的分片数据。

需要说明的是,上述预设阈值可以是第一设备对上述全量数据进行分片后得到的分片数量,当然也可以是其他的值,一般该预设阈值可设置为小于10;上述全量数据可以是针对统一资源定位符ur l的阻断记录,也可以是针对域名的阻断记录,也可以 是两者的组合,并不限于此。

具体地,第一设备是如何对全量数据进行分片缓存的,即上述分片数据是如何在第一设备中得到的,与上述实施例1中的相同,此处不再赘述。

上述步骤S604中,第二设备接收第一设备发送的分片数据可以表现为:第二设备接收在第一设备的本地缓存中与索引对应的指定分片数据;其中,索引为上述时间戳;第二设备接收第一设备发送的指定时间戳;其中,指定时间戳的取值为由上述时间戳的取值加1得到。

通过上述步骤,通过第二设备发送携带时间戳的请求消息,接收第一设备根据接收的请求消息中的时间戳,发送的该时间戳对应的第一设备的缓存中的分片数据的方式,即第二设备按照时间戳读取在第一设备中预先进行分片缓存的分片数据,降低了数据读取的压力,进而解决了系统之间进行全量更新数据时频繁失败的技术问题,提高了数据传输的效率。

举个例子:第一设备的数据库中通常记录了千万级别的数据记录,此处为了方便理解,以较少数据记录(80条记录)为例,第二设备发送携带时间戳为0的请求消息后,按照相关技术中的方式,则第二设备将一次性读取该80条记录。而在本实施例中,第一设备对该80条记录进行分片,分片可以进行均等分配也可以进行不均等分配,以均等分配为例,分为4片,每个分片有20条记录,将每个分片所包含的数据写入缓存,并设置缓存中的4个分片数据对应的索引0、1、2、3;当第二设备请求读取第一设备的全量数据时,第一次请求中携带的时间戳为0,则第二设备读取第一设备的缓存中以0为索引的分片数据;一段时间后(比如1分钟),第二设备发送第二次请求,该第二次请求中携带时间戳为1,则第二设备读取第一设备的缓存中以1为索引的分片数据;以此类推,直至第二设备将第一设备的缓存中的分片数据读取完毕。即本实施例通过第一设备将全量数据进行分片,第二设备分批读取该第一设备的缓存中的分片数据,相比于相关技术中的方案能够降低数据的读取压力,缩短数据的传送时间,提高了数据的传输效率。

在一个可选实施例中,图7是根据本发明实施例2的数据传输方法的流程图二,如图7所示,上述方法还包括:

步骤S702,在时间戳的取值等于或者大于预设阈值的情况下,第二设备接收第一设备发送的从时间戳指示的时间至当前时间产生的增量数据。

需要说明的是,在本发明实施例中,存在两类时间戳,第一类时间戳可以是上述图6所示实施例中的时间戳,该时间戳可以起到读取全量数据中的分片数据的索引标 识的作用,其可以是用个位数字比如0、1、2等表示;第二类时间戳可以是真实的时间戳,其表示一个真实的时间,即第二设备最近一次访问第一设备的时间,其可以通过一个9位的数字表示,即第二类时间戳既可以起到标识的作用,也可以表示一个真实的时间。由于上述预设阈值一般为分片数据,其并不是很大的数字,因而作为可以用9位数字表示真实时间戳的第二类时间戳一般是大于上述预设阈值的(即步骤S702中的等于或者大于预设阈值的时间戳),因而可以将该第二类时间戳作为一次全量数据读取结束的标识,或者是一个正常的增量数据读取的触发标识。

需要说明的是,步骤S702中,时间戳的取值大于或者等于预设阈值,表示第二设备发送的请求是一次正常的增量数据读取请求,此时,第二设备需要将第二设备最近一次访问第一设备的时刻(即上述的时间戳指示的时间)至当前时间之间的增量数据读取过来,在后续的时间里,第二设备一直以正常的增量同步方式读取增量数据,直到时间点为整点或者半点为止,即直到第二设备收到以全量同步方式读取数据的指示为止,以此类推。

需要说明的是,在本发明的实施例中,上述第一设备与第二设备之间的数据通信可以使用http协议,但不限于此。上述方法可以应用于网络内容的监控与屏蔽领域,比如,第一设备对网络的内容比如涉黄、涉毒、涉暴、以及涉恐内容等进行监控,或者其他设备对该内容进行监控,当监控到这些内容后,将该内容对应的网页的统一资源定位符或者该内容出现的计算机所在的域名记录下来,然后将这些数据通过本发明实施例的方法同步到第二设备,第二设备可以再传输给其他设备或者第二设备本身根据获得到统一资源定位符或者域名对这些内容进行屏蔽。

为了更好的理解本发明,可以结合实施例1中的图4和图5所示的可选的实施例对本发明做进行一步的解释,此处不再赘述。

实施例3

根据本发明实施例,还提供了一种用于实施上述实施例1中的数据传输方法的装置,图8是根据本发明实施例3的数据传输装置的结构框图一,如图8所示,该装置,应用于第一设备,包括:

接收模块80,用于定时接收来自第二设备的请求消息,其中,该请求消息中携带有与本次接收的请求消息对应的时间戳;

需要说明的是,这里的定时可以是按照实际情况进行设定,两次接收的请求消息的时间间隔可以是固定的,比如设定每隔1分钟接收一次请求消息,也可以是不固定的,比如1分钟后接收第二次请求消息,再过3分钟后接收第三次请求消息,具体的 可以根据实际情况进行设定。

第一判断模块82,与上述接收模块80连接,用于判断时间戳的取值是否小于预设阈值;

上述时间戳的取值可以是指定值,用于指示读取第一设备中的全量数据;在一个可选的实施例中,上述指定值可以是0,即在请求消息中携带的时间戳为0时,指示第二设备应当读第一设备的全量数据。

在一个可选实施例中,图9是根据本发明实施例3的数据传输装置的结构框图二,如图9所示,上述装置还包括:

第二判断模块90,与接收模块80连接,用于判断时间戳的取值是否为指定值,其中,该指定值用于指示读取全量数据,其中,在判断结果为是时,触发将与时间戳对应的分片数据同步至第二设备。

第一同步模块84,与上述第一判断模块82连接,用于在时间戳的取值小于预设阈值时,按照时间戳与第一设备在本地缓存的分片数据的对应关系,将与时间戳对应的分片数据同步至第二设备,其中,分片数据为对第一设备记录的全量数据进行分片得到。

需要说明的是,上述预设阈值可以是对上述全量数据进行分片后得到的分片数量,当然也可以是其他的值,一般该预设阈值可设置为小于10;上述全量数据可以是针对统一资源定位符ur l的阻断记录,也可以是针对域名的阻断记录,也可以是两者的组合,并不限于此。

上述第一同步模块84还用于以时间戳的取值作为索引,将第一设备的本地缓存中与该索引对应的指定分片数据同步至第二设备。

在一个可选的实施例中,图10是根据本发明实施例3的数据传输装置的结构框图三,如图10所示,上述装置还包括:

缓存模块100,与第一同步模块84连接,用于将第一设备的数据库中与第一索引n对应的分片数据,写入本地缓存,并将n-1作为分片数据在第一设备的本地缓存中的索引,其中,n小于或者等于对全量数据进行分片后得到的所有分片数据的总数量N,n、N均为正整数。

具体地,上述缓存模块100还包括:

判断单元1001,用于判断n是否小于N;

第一读取单元1002,与上述判断单元1001连接,用于在n小于N的情况下,从所述数据库中读取n对应的分片数据,并在n对应的分片数据上附上值为n的时间戳;

第二读取单元1003,与上述判断单元1001连接,用于在n等于N的情况下,从所述数据库中读取与n对应的分片数据,并在与n对应的分片数据上附上值为指定时刻的时间戳;其中,所述指定时刻为所述第二设备上一次访问所述第一设备的时刻;

缓存单元1004,与上述第一读取单元1002和第二读取单元1003连接,用于将与n对应的分片数据写入本地缓存,并将n-1作为分片数据在本地缓存中的索引。

需要说明的是,上述缓存单元1004可以是按照发送格式将与n对应的分片数据写入本地缓存,这样,在第二设备需要读取时,第一设备不需要再对分片数据进行格式的转变,而是直接返回给第二设备,降低了同步的时间,提高了同步的效率。

通过上述装置,通过将全量数据进行缓存分片的方式,然后根据接收的请求消息中的时间戳,按照时间戳与缓存中的分片数据的关系,将该时间戳对应的缓存中的分片数据依次同步到第二设备的方式,降低了数据读取的压力,进而解决了系统之间进行全量更新数据时频繁失败的技术问题,提高了数据传输的效率。

举个例子:第一设备的数据库中通常记录了千万级别的数据记录,此处为了方便理解,以较少数据记录(80条记录)为例,在第一设备接收到携带时间戳为0的请求消息后,按照相关技术中的方式,则第一设备将该80条记录一次性全部同步给第二设备。而在本实施例中,第一设备中的上述装置对该80条记录进行分片,分片可以进行均等分配也可以进行不均等分配,以均等分配为例,分为4片,每个分片有20条记录,缓存单元1004将每个分片所包含的数据写入缓存,并设置缓存中的4个分片数据对应的索引0、1、2、3;当第二设备请求读取第一设备的全量数据时,第一次请求中携带的时间戳为0,则第一设备的第一同步模块84将缓存中以0为索引的分片数据同步至第二设备;一段时间后(比如1分钟),第一设备的接收模块80接收第二次请求,该第二次请求中携带时间戳为1,则第一设备的第一同步模块84将缓存中以1为索引的分片数据同步至第二设备;以此类推,直至将缓存中的分片数据读取完毕。即本实施例的上述装置通过将全量数据进行分片,将分片后的数据依次同步至第二设备,即将全量数据分批同步至第二设备,相比于相关技术中的方案能够降低数据的读取压力,缩短数据的传送时间,提高了数据的传输效率。

图11是根据本发明实施例3的数据传输装置的结构框图四,如图11所示,上述装置还包括:

第二同步模块1101,与上述第一判断模块82连接,用于在时间戳的取值等于或 者大于预设阈值时,将从时间戳指示的时间至当前时间产生的增量数据同步至第二设备。

需要说明的是,在本发明实施例中,存在两类时间戳,第一类时间戳可以是上述图8所示实施例中的时间戳,该时间戳可以起到读取全量数据中的分片数据的索引标识的作用,其可以是用个位数字比如0、1、2等表示;第二类时间戳可以是真实的时间戳,其表示一个真实的时间,即第二设备最近一次访问第一设备的时间,其可以通过一个9位的数字表示,即第二类时间戳既可以起到标识的作用,也可以表示一个真实的时间。在由于上述预设阈值一般为分片数据,其不可能是个很大的数字,因而作为可以用9位数字表示真实时间戳的第二类时间戳的取值一般是大于上述预设阈值的,因而可以将该第二类时间戳作为一次全量数据读取结束的标识,或者是一个正常的增量数据读取的触发标识。

需要说明的是,时间戳的取值大于或者等于预设阈值,表示第二设备发送的请求是一次正常的增量数据读取请求,此时,第二同步模块1101需要将第二设备最近一次访问第一设备的时刻(即上述的时间戳指示的时间)至当前时间之间的增量数据传输至第二设备,在后续的时间里第一设备一直以正常的增量数据同步方式将增量数据同步至第二设备,直到时间点为整点或者半点为止,即直到收到第一设备以全量读取同步方式将数据同步至第二设备的指示为止,以此类推。

需要说明的是,在本发明的实施例中,第一设备中的上述装置与第二设备之间的数据通信可以使用http协议,但不限于此。上述装置可以应用于网络内容的监控与屏蔽领域,比如,第一设备对网络的内容比如涉黄、涉毒、涉暴、以及涉恐内容等进行监控,或者其他设备对该内容进行监控,当监控到这些内容后,将该内容对应的网页的统一资源定位符或者该内容出现的计算机所在的域名记录下来,然后将这些数据通过上述装置同步到第二设备,第二设备可以再传输给其他设备或者第二设备本身根据获得到统一资源定位符或者域名对这些内容进行屏蔽。

需要说明的是,上述模块第一同步模块84第二同步模块1101可以是第一设备中的同一个同步模块,也可以是第一设备中的不同的同步模块。

实施例4

根据本发明实施例,还提供了一种用于实施上述实施例2中的数据传输方法的装置,图12是根据本发明实施例4的数据传输装置的结构框图一,如图12所示,该装置,应用于第二设备,包括:

发送模块1202,用于向第一设备发送请求消息,其中,该请求消息中携带有与请 求消息对应的时间戳;

需要说明的是,上述发送请求消息可以是定时发送请求消息,可以是不定时发送请求消息,可以根据具体的情况进行具体设定。

第一接收模块1204,与上述发送模块1202连接,用于在时间戳的取值小于预设阈值的情况下,接收第一设备发送的分片数据;其中,分片数据是与时间戳对应的在第一设备本地缓存的分片数据,上述分片数据为第一设备记录的全量数据进行分片得到。

上述时间戳可以是指定值,用于指示第二设备读取第一设备中的全量数据;在一个可选的实施例中,上述指定值可以是0,即在请求消息中携带的时间戳为0时,指示第二设备应当读第一设备的全量数据。在一个可选实施例中,上述装置还包括:触发模块,用于在时间戳的取值为指定值的情况下,触发第一设备发送全量数据;第三接收模块,与该触发模块连接,用于接收第一设备发送的与指定值对应的分片数据,其中,指定值用于指示第二设备向所述第一设备读取全量数据。

需要说明的是,上述预设阈值可以是第一设备对上述全量数据进行分片后得到的分片数量,当然也可以是其他的值,一般该预设阈值可设置为小于10;上述全量数据可以是针对统一资源定位符ur l的阻断记录,也可以是针对域名的阻断记录,也可以是两者的组合,并不限于此。

具体地,第一设备是如何对全量数据进行分片缓存的,即上述分片数据是如何在第一设备中得到的,与上述实施例1中的相同,此处不再赘述。

在本发明的一个可选实施例中,图13是根据本发明实施例4的数据传输装置的结构框图二,如图13所示,上述第一接收模块1204可以包括:第一接收单元1302,用于接收在所述第一设备的本地缓存中与索引对应的指定分片数据;其中,索引为上述时间戳的取值;第二接收单元1304,与上述第一接收单元1302连接,用于接收第一设备发送的指定时间戳;其中,指定时间戳的取值为由上述时间戳的取值加1得到。

通过上述装置,通过发送模块1202发送携带时间戳的请求消息,第一接收模块1204接收第一设备根据接收的请求消息中的时间戳,发送的该时间戳对应的第一设备的缓存中的分片数据的方式,即上述装置按照时间戳读取在第一设备中预先进行分片缓存的分片数据,降低了数据读取的压力,进而解决了系统之间进行全量更新数据时频繁失败的技术问题,提高了数据传输的效率。

举个例子:第一设备的数据库中通常记录了千万级别的数据记录,此处为了方便理解,以较少数据记录(80条记录)为例,第二设备发送携带时间戳为0的请求消息 后,按照相关技术中的方式,则第二设备将一次性读取该80条记录。而在本实施例中,第一设备对该80条记录进行分片,分片可以进行均等分配也可以进行不均等分配,以均等分配为例,分为4片,每个分片有20条记录,将每个分片所包含的数据写入缓存,并设置缓存中的4个分片数据对应的索引0、1、2、3;当第二设备中上述装置中的发送模块1202请求读取第一设备的全量数据时,第一次请求中携带的时间戳为0,则上述装置中的第一接收模块1204读取第一设备的缓存中以0为索引的分片数据;一段时间后(比如1分钟),第二设备上述装置中的发送模块1202发送第二次请求,该第二次请求中携带时间戳为1,则上述装置中的第一接收模块1204读取第一设备的缓存中以1为索引的分片数据;以此类推,直至第二设备中的上述装置将第一设备的缓存中的分片数据读取完毕。即本实施例通过第一设备将全量数据进行分片,上述装置分批读取该第一设备的缓存中的分片数据,相比于相关技术中的方案能够降低数据的读取压力,缩短数据的传送时间,提高了数据的传输效率。

图14是根据本发明实施例4的数据传输装置的结构框图三,如图14所示,上述装置还包括:

第二接收模块1402,与发送模块1204用于在时间戳的取值大于或者等于预设阈值的情况下,接收第一设备发送的从时间戳指示的时间至当前时间产生的增量数据。

需要说明的是,在本发明实施例中,存在两类时间戳,第一类时间戳可以是上述图12所示实施例中的时间戳,该时间戳可以起到读取全量数据中的分片数据的索引标识的作用,其可以是用个位数字比如0、1、2等表示;第二类时间戳可以是真实的时间戳,其表示一个真实的时间,即第二设备最近一次访问第一设备的时间,其可以通过一个9位的数字表示,即第二类时间戳既可以起到标识的作用,也可以表示一个真实的时间。在由于上述预设阈值一般为分片数据,其并不是很大的数字,因而作为可以用9位数字表示真实时间戳的第二类时间戳一般是大于上述预设阈值的,因而可以将该第二类时间戳作为一次全量数据读取结束的标识,或者是一个正常的增量数据读取的开始的标识。

需要说明的是,时间戳的取值大于或者等于预设阈值,表示第二设备中的上述装置发送的请求是一次正常的增量数据读取请求,此时,第二设备的上述装置需要将第二设备最近一次访问第一设备的时刻(即上述的时间戳指示的时间)至当前时间之间的增量数据读取过来,在后续的时间里,上述装置一直以正常的增量数据同步方式读取增量数据,直到时间点为整点或者半点为止,即直到上述装置收到以全量读取同步方式读取数据的指示为止,以此类推。

需要说明的是,在本发明的实施例中,上述第一设备与第二设备中的上述装置之 间的数据通信可以使用http协议,但不限于此。上述装置可以应用于网络内容的监控与屏蔽领域,比如,第一设备对网络的内容比如涉黄、涉毒、涉暴、以及涉恐内容等进行监控,或者其他设备对该内容进行监控,当监控到这些内容后,将该内容对应的网页的统一资源定位符或者该内容出现的计算机所在的域名记录下来,然后将这些数据通过上述装置同步到第二设备,第二设备可以再传输给其他设备或者第二设备本身根据获得到统一资源定位符或者域名对这些内容进行屏蔽。

实施例5

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行应用程序的实施例1中的数据传输方法中的步骤的程序代码,具体详见实施例1,此处不再赘述。

可选地,图15是根据本发明实施例的一种计算机终端的结构框图。如图15所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1502、存储器1506、以及传输装置1508。

其中,存储器1506可用于存储软件程序以及模块,如本发明实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器1502通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器1506可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器1502远程设置的存储器1506,这些远程存储器1506可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器1502可以通过传输装置1408调用存储器1506存储的信息及应用程序,以执行实施例1中的步骤的应用程序。

采用本发明实施例,提供了一种计算机终端的方案。通过该计算机终端,执行上述实施例1中的步骤的程序代码,降低了数据读取的压力,进而解决了系统之间进行全量更新数据时频繁失败的技术问题,提高了数据传输的效率。

本领域普通技术人员可以理解,图15所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图15其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

实施例6

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行应用程序的实施例2中的数据传输方法中的步骤的程序代码,具体详见实施例2,此处不再赘述。

在本实施例中的计算机终端与实施例5中的计算机终端的结构类似,包括处理器、存储器以及传输装置,其中,存储器用于存储实施例2中的数据传输方法的步骤的程序代码,处理器用于通过传输装置调用存储器存储的信息及应用程序,以执行实施例2中的步骤的程序代码。具体步骤详见实施例2中的方法,此处不再赘述。

实施例7

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据传输方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行实施例1或者实施例2中的数据传输方法的步骤的程序代码,具体步骤详见实施例1或者实施例2,此处不再赘述。

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

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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