一种数据处理方法、装置及集群服务系统
技术领域
本发明涉及互联网技术领域,具体涉及针对互联网数据的处理技术领域,尤其涉及一种数据处理方法、装置及集群服务系统。
背景技术
集群服务系统,简单来说就是将多个服务器连接在一起,协调多个服务器能够像一个服务器一样工作,也就是使多个服务器作为一个整体为客户端提供数据处理服务。目前,在许多互联网场景中常应用集群服务系统,例如在网络娱乐直播场景中使用集群服务系统,客户端通常需要在主页面随机显示多个网络主播的大量照片,这时客户端以DNS轮询的方式从集群服务系统中的各个服务器中获取照片;然而,现有集群服务系统中各个服务器对数据的处理机制是相对独立的,那么,当客户端第一次从服务器一获得第一批照片进行显示后,轮询至服务器二获取第二批照片时,第一批照片与第二批照片可能会有一些照片出现重复,使得相同照片在客户端重复展示而造成较差的显示效果,当然也给用户较差的视觉体验。
发明内容
本发明实施例提供一种数据处理方法、装置及集群服务系统,能够在集群服务系统中各个服务器之间进行一致的数据处理流程,避免为客户端提供重复数据,提升集群服务系统的数据处理服务能力。
本发明实施例第一方面提供一种数据处理方法,应用于集群服务系统,所述集群服务系统包含至少一个服务器,可包括:
所述服务器从数据库获取源数据集合并记录获取时间,所述源数据集合包括多个源数据;
所述服务器根据所记录的获取时间查询目标分片标识;
所述服务器对所述目标分片标识进行随机运算生成下标集合,所述下标集合包括多个下标值;
所述服务器将所述源数据集合中的源数据分别与所述下标集合中的下标值进行匹配,生成随机数据序列。
优选地,所述服务器从数据库获取源数据集合并记录获取时间之前,还包括:
所述服务器按照预置周期对预设时间段进行分片处理,获得多个时间片,每个时间片对应一个时间范围;
所述服务器为每个时间片设置唯一分片标识。
优选地,所述服务器根据所记录的获取时间查询目标分片标识,包括:
所述服务器根据所记录的获取时间所属的时间范围,确定目标时间片;
所述服务器将所述目标时间片的唯一分片标识确定为目标分片标识。
优选地,所述服务器将所述源数据集合中的源数据分别与所述下标集合中的下标值进行匹配,生成随机数据序列,包括:
所述服务器按照所述源数据集合中各个源数据的ID对所述各个源数据进行排序处理,得到顺序排列的多个源数据;
所述服务器按照所述各个源数据的顺序,分别将所述下标集合中各下标值与所述各个源数据的ID进行关联匹配,生成随机数据序列,所述随机数据序列包括顺序排列的多个源数据,并且每个源数据的ID对应唯一一个下标值。
优选地,所述服务器将所述源数据集合中的源数据分别与所述下标集合中的下标值进行匹配,生成随机数据序列之后,还包括:
所述服务器按照所述随机数据序列中各个源数据的顺序对所述随机数据序列进行分页处理,获得至少一个显示分页,每个显示分页包含顺序排列的至少一个源数据;
当接收到客户端发送的携带页码的数据访问请求时,所述服务器向所述客户端返回所请求页码对应的显示分页所包含的源数据。
本发明实施例第二方面提供一种数据处理装置,可包括:
获取单元,用于从数据库获取源数据集合并记录获取时间,所述源数据集合包括多个源数据;
查询单元,用于根据所记录的获取时间查询目标分片标识;
随机运算单元,用于对所述目标分片标识进行随机运算生成下标集合,所述下标集合包括多个下标值;
匹配单元,用于将所述源数据集合中的源数据分别与所述下标集合中的下标值进行匹配,生成随机数据序列。
优选地,该装置还包括:
分片处理单元,用于按照预置周期对预设时间段进行分片处理,获得多个时间片,每个时间片对应一个时间范围;
标识设置单元,用于为每个时间片设置唯一分片标识。
优选地,所述查询单元包括:
分片确定单元,用于根据所记录的获取时间所属的时间范围,确定目标时间片;
标识确定单元,用于将所述目标时间片的唯一分片标识确定为目标分片标识。
优选地,匹配单元包括:
排序单元,用于按照所述源数据集合中各个源数据的ID对所述各个源数据进行排序处理,得到顺序排列的多个源数据;
关联匹配单元,用于按照所述各个源数据的顺序,分别将所述下标集合中各下标值与所述各个源数据的ID进行关联匹配,生成随机数据序列,所述随机数据序列包括顺序排列的多个源数据,并且每个源数据的ID对应唯一一个下标值。
优选地,该装置还包括:
分页处理单元,用于按照所述随机数据序列中各个源数据的顺序对所述随机数据序列进行分页处理,获得至少一个显示分页,每个显示分页包含顺序排列的至少一个源数据;
访问响应单元,用于当接收到客户端发送的携带页码的数据访问请求时,向所述客户端返回所请求页码对应的显示分页所包含的源数据。
本发明实施例第三方面提供一种集群服务系统,包括至少一个服务器,其中,所述服务器包括如上述第二方面所述的数据处理装置。
在本发明实施例中,针对集群服务系统中的任一个服务器所执行的数据处理流程可包括:从数据库获取包含多个源数据的源数据集合并记录获取时间;根据所记录的获取时间查询目标分片标识;对所述目标分片标识进行随机运算生成包含多个下标值的下标集合;将所述源数据集合中的源数据分别与所述下标集合中的下标值进行匹配,生成随机数据序列。由于在集群服务系统中,每一个服务器执行相同的数据处理流程,并且,在此流程中各个服务器之间所获得的源数据集合以及下标集合具备一致性,使得各个服务器能够获得一致性的随机数据序列,那么,当客户端跨服务器进行数据访问时,各个服务器之间既能够避免为客户端提供重复数据,又能够保证所提供的源数据的连续性,从而提升了集群服务系统的数据处理服务能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种集群服务系统的结构示意图;
图2为本发明实施例提供的一种数据处理方法的流程图;
图3为本发明实施例提供的一种服务器的内部结构示意图;
图4为本发明实施例提供的一种数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
集群服务系统,简单来说就是将多个服务器连接在一起,协调多个服务器能够像一个服务器一样工作,也就是使多个服务器作为一个整体为客户端提供数据处理服务。采用集群服务系统通常能够提升数据处理能力及服务能力,同时能够保证系统的稳定性。实际应用中,集群服务系统可以被应用于各类互联网场景中,例如:在网络娱乐直播场景中,客户端通常需要在主页面随机显示多个网络主播的大量照片,那么,集群服务系统可以为客户端提供相应的图片数据处理服务;再如:在网络游戏场景中,客户端通常需要显示大量游戏场景图像,那么,集群服务系统可以为客户端提供相应的游戏场景数据处理服务。
请参见图1,为本发明实施例所提供的一种集群服务系统的结构示意图;该系统可包含至少一个服务器,图1示出服务器10、服务器20和服务器30共三个服务器。
集群服务系统中的各个服务器均连接至一个数据库,该数据库用于为集群服务系统提供各类源数据,该源数据可包括但不限于:图片、照片、游戏场景数据等等;每一个源数据都具备唯一ID,所有源数据以ID为索引被存储于该数据库中,集群服务系统中的各个服务器共享该数据库内的所有源数据。集群服务系统中的各个服务器分别与前端的多个客户端相连接,各个服务器作为一个整体为各个客户端提供数据处理服务;在本发明实施例中,客户端以DNS轮询的方式访问各个服务器,并从服务器获得所需要的数据或服务。此处,客户端可以包括但不限于:PC(Personal Computer,个人计算机)、PDA(平板电脑)、智能手机等等。
在本发明实施例中,针对集群服务系统中的任一个服务器所执行的数据处理流程可包括:从数据库获取包含多个源数据的源数据集合并记录获取时间;根据所记录的获取时间查询目标分片标识;对所述目标分片标识进行随机运算生成包含多个下标值的下标集合;将所述源数据集合中的源数据分别与所述下标集合中的下标值进行匹配,生成随机数据序列。由于在集群服务系统中,每一个服务器执行相同的数据处理流程,并且,在此流程中各个服务器之间所获得的源数据集合以及下标集合具备一致性,使得各个服务器能够获得一致性的随机数据序列,那么,当客户端以DNS轮询的方式依次访问各个服务器时,各个服务器之间既能够避免为客户端提供重复数据,又能够保证所提供的源数据的连续性,从而提升了集群服务系统的数据处理服务能力。
基于上述原理,本发明实施例提供了一种数据处理方法,该方法应用于集群服务系统中,具体可以应用于图1所示的集群服务系统中,并且,该方法可以是由集群服务系统中的任一个服务器在执行数据处理的过程中所形成的方法。请参见图2,针对集群服务系统中的任一个服务器在运行数据处理方法时可执行如下步骤:
S101,所述服务器从数据库获取源数据集合并记录获取时间,所述源数据集合包括多个源数据。
为了更方便地对各类源数据进行管理,同时为了能够更便捷地为集群服务系统提供各类源数据,数据库通常以集合的方式分类存储各类源数据,例如:数据库包括“主播相册”集合,该集合内存储了关于网络主播的所有照片或图片。针对集群服务系统的应用场景,集群服务系统内的各个服务器通常按照一定的频率或周期从该数据库中获取相应的源数据集合进行数据处理。在本步骤中,服务器在从数据库中获取源数据集合的同时还记录获取时间,例如:服务器10在11:00:00从数据库获取源数据集合,那么,服务器10同时记录此源数据集合的获取时间为11:00:00。
可选地,在执行步骤S101之前,服务器还可执行如下步骤s11-s12:
s11,所述服务器按照预置周期对预设时间段进行分片处理,获得多个时间片,每个时间片对应一个时间范围。
预置周期可以根据实际情况进行设置,例如:集群服务系统中的各个服务器协商一致确定从数据库获取源数据的获取频率,那么预置周期可以设置为该获取频率;再如:可以将源数据的刷新频率设置为预置周期,如客户端通常需要每15分钟刷新一次所展示的网络主播的照片,即该源数据的刷新频率为15分钟,那么预置周期可设置为15分钟。预设时间段可以根据实际需要进行设置,例如:预设时间段可设置为一天即0:00:00-23:59:59,或者9:00:00-12:00:00,或者14:00:00-24:00:00,等等。在本步骤中,将预设时间段划分为多个时间片,每个时间片的长度即为一个预置周期;比如:预置周期为15分钟,预设时间段为一天即0:00:00-23:59:59,那么,可将一天划分为96个时间片,每个时间片的长度为15分钟,第一个时间片对应时间范围为[0:00:00-0:14:59],第二个时间片对应时间范围为[0:15:00-0:29:59],以此类推。
s12,所述服务器为每个时间片设置唯一分片标识。
分片标识用于唯一标识一个时间片,优选地,该分片标识可以为一个字符串;例如:假设一天被划分为N(N为正整数)个时间片,那么,字符串a1b1c1d1可用于唯一标识第一个时间片,字符串a2b2c2d2可用于唯一标识第二个时间片,字符串ajbjcjdj可用于唯一标识第j(j为正整数且1≤j≤N)个时间片,以此类推,字符串anbncndn可用于唯一标识第N个时间片。可以理解的是,上述例子中分片标识以字符串ajbjcjdj表示仅为举例,字符串的目的在于唯一标识一个时间片,因此,只需要保证每个时间片对应的唯一字符串之间相互区别,而每个字符串的长度或表现形式本发明实施例并不作限定。
S102,所述服务器根据所记录的获取时间查询目标分片标识。
根据所记录的获取时间可以确定服务器是在哪个时间片执行获取源数据集合的动作,进而可以查询到目标分片标识。具体实现中,服务器在执行步骤S102的过程中具体执行如下步骤s21-s22:
s21,所述服务器根据所记录的获取时间所属的时间范围,确定目标时间片。
s22,所述服务器将所述目标时间片的唯一分片标识确定为目标分片标识。
如前述,服务器中预先已存储多个时间片、每个时间片对应的时间范围以及每个时间片的分片标识;那么,步骤s21-s22中,服务器根据所记录的获取时间所属的时间范围可确定目标时间片,进而能够查询到该目标时间片的唯一分片标识,从而确定目标分片标识。
S103,所述服务器对所述目标分片标识进行随机运算生成下标集合,所述下标集合包括多个下标值。
服务器可以将目标分片标识作为输入参数,采用随机算法对该输入参数进行随机运算生成下标集合。此处的随机算法可以包括但不限于:RSA算法、哈希算法等等。实际应用中,为了更好地实现与源数据集合进行匹配,通常下标集合所包含的下标值的数量需要大于或等于源数据集合所包含的源数据的数量,服务器可以根据所需要的下标值的数量选取适合的随机算法进行随机运算;需要注意的是,所述下标集合所包含的下标值的数量越大,服务器进行随机运算所耗费的时间越长,因此,服务器还可以根据实际的运算能力选取适合的随机算法进行随机运算;本实施例中,假设获得的下标集合中包含M(M为正整数)个下标值,那么,该下标集合可表示如下表一:
表一:下标集合
序号 |
下标值 |
1 |
i<sub>1</sub> |
2 |
i<sub>2</sub> |
… |
… |
M |
i<sub>m</sub> |
S104,所述服务器将所述源数据集合中的源数据分别与所述下标集合中的下标值进行匹配,生成随机数据序列。
在本步骤中,服务器需要将下标集合中的一个下标值关联匹配给源数据集合中的唯一一个源数据,也就是说,一个源数据唯一关联一个下标值;那么,集群服务系统中的每个服务器均可以依据源数据所关联的下标值来对源数据进行诸如分页、排序等等处理,这样当客户端跨服务器获取多个源数据时,可以避免客户端每次获取到重复的源数据,同时可以保证客户端能够获取到连续的源数据。服务器在执行步骤S104的过程中具体执行如下步骤s31-s32:
s31,所述服务器按照所述源数据集合中各个源数据的ID对所述各个源数据进行排序处理,得到顺序排列的多个源数据。
服务器可以按照一定的规则进行排序处理,例如:针对主播相册,服务器可以按照网络主播的当红程度由强至弱的顺序,对网络主播的照片按照ID进行排序,或者,可以按照用户访问习惯,如偏好访问网络主播的搞笑类图片等等,对网络主播的照片按照ID进行排序。本实施例中,假设排序处理后的源数据集合中包含P(P为正整数且P≤M)个顺序排列的源数据,那么,该排序处理后的源数据集合可表示如下表二:
表二:排序处理后的源数据集合
ID |
源数据 |
ID-1 |
源数据1 |
ID-2 |
源数据2 |
… |
… |
ID-P |
源数据P |
s32,所述服务器按照所述各个源数据的顺序,分别将所述下标集合中各下标值与所述各个源数据的ID进行关联匹配,生成随机数据序列,所述随机数据序列包括顺序排列的多个源数据,并且每个源数据的ID对应唯一一个下标值。
按照本实施例所示例子,所述随机数据序列可表示如下表三:
表三:随机数据序列
ID |
源数据 |
下标值 |
ID-1 |
源数据1 |
i<sub>1</sub> |
ID-2 |
源数据2 |
i<sub>2</sub> |
… |
… |
… |
ID-P |
源数据P |
i<sub>p</sub> |
在本发明实施例中,由于集群服务系统中每一个服务器均采用相同的方式执行上述步骤S101-S104相同的数据处理流程,在此流程中各个服务器之间所获得的源数据集合以及下标集合具备一致性,使得各个服务器能够获得一致性的随机数据序列,那么,当客户端跨服务器获取多个源数据时,比如:客户端从服务器10获得了下标值从i1至i4共四个源数据,那么,客户端轮询至服务器20时则可避免重复获取i1至i4这四个源数据,而可以从服务器20获取下标值从i5开始的多个源数据,这样也保证了所获取的源数据的连续性。
可选地,服务器在执行步骤S104之后,还可执行如下步骤s41-s42:
s41,所述服务器按照所述随机数据序列中各个源数据的顺序对所述随机数据序列进行分页处理,获得至少一个显示分页,每个显示分页包含顺序排列的至少一个源数据。
服务器可以根据显示需要进行分页处理,由于随机数据序列中源数据是顺序排列的,因此,服务器仅需要简单地根据每个显示分页所要求显示的源数据的数量,按照下标值对随机数据序列进行分页处理。假设每个显示分页要求显示10个源数据,那么,针对上述表三进行分页处理之后,可以得到:第一个显示分页包括下标值从i1至i10共10个源数据,第二个显示分页包括下标值从i11至i20共10个源数据,以此类推。可以理解的是,最后一个显示分页所包括的源数据的数量可以小于或等于10。
s42,当接收到客户端发送的携带页码的数据访问请求时,所述服务器向所述客户端返回所请求页码对应的显示分页所包含的源数据。
如前述,客户端以DNS轮询的方式访问集群服务系统,那么,客户端可以跨服务器获取多个显示分页的源数据,比如:客户端可以从服务器10请求访问获得第一个显示分页的源数据,那么,服务器10向客户端返回第一个显示分页所包含获得了下标值从i1至i10共10个源数据;客户端轮询至服务器20请求访问第二个显示分页,那么,服务器20向客户端返回第二个显示分页所包含获得了下标值从i11至i20共10个源数据,以此类推。这样,客户端可以从集群服务系统获取到连续的显示分页,且每个显示分页所包含的源数据相互之间不重复,使得源数据在客户端获得较佳的显示效果,从而使用户获得较佳的使用体验。
如上可见,本发明实施例的数据处理方法的流程由集群服务系统中的任一个服务器所执行,由于每一个服务器执行相同的数据处理流程,并且,在此流程中各个服务器之间所获得的源数据集合以及下标集合具备一致性,使得各个服务器能够获得一致性的随机数据序列,那么,当客户端以DNS轮询的方式依次访问各个服务器时,各个服务器之间既能够避免为客户端提供重复数据,又能够保证所提供的源数据的连续性,从而提升了集群服务系统的数据处理服务能力。
基于上述实施例所示的数据处理方法,本发明实施例还提供了一种服务器,该服务器可以为图1所示的集群服务系统中的任一个服务器,该服务器可以用于执行上述方法流程的各步骤。请参见图3,该服务器的内部结构可包括但不限于:处理器、网络接口及存储器。其中,服务器内的处理器、网络接口及存储器可通过总线或其他方式连接,在本发明实施例所示图3中以通过总线连接为例。
其中,处理器(或称CPU(Central Processing Unit,中央处理器))是服务器的计算核心以及控制核心。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等)。存储器(Memory)是服务器中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储装置。存储器提供存储空间,该存储空间存储了服务器的操作系统,可包括但不限于:Windows系统(一种操作系统)、Luix(一种操作系统)系统等等,本发明对此并不作限定。存储器的存储空间还存储了数据处理装置,服务器通过运行存储器中所存储的数据处理装置,可从数据库获取包含多个源数据的源数据集合并记录获取时间;根据所记录的获取时间查询目标分片标识;对所述目标分片标识进行随机运算生成包含多个下标值的下标集合;将所述源数据集合中的源数据分别与所述下标集合中的下标值进行匹配,生成随机数据序列。
在本发明实施例中,服务器通过运行存储器中的数据处理装置来执行上述方法流程的各步骤。请一并参见图4,在数据处理过程中,该装置运行如下单元:
获取单元101,用于从数据库获取源数据集合并记录获取时间,所述源数据集合包括多个源数据。
查询单元102,用于根据所记录的获取时间查询目标分片标识。
随机运算单元103,用于对所述目标分片标识进行随机运算生成下标集合,所述下标集合包括多个下标值。
匹配单元104,用于将所述源数据集合中的源数据分别与所述下标集合中的下标值进行匹配,生成随机数据序列。
可选地,该装置还运行如下单元:
分片处理单元105,用于按照预置周期对预设时间段进行分片处理,获得多个时间片,每个时间片对应一个时间范围。
标识设置单元106,用于为每个时间片设置唯一分片标识。
基于此描述,所述查询单元102具体运行如下单元:
分片确定单元1001,用于根据所记录的获取时间所属的时间范围,确定目标时间片。
标识确定单元1002,用于将所述目标时间片的唯一分片标识确定为目标分片标识。
所述匹配单元104具体运行如下单元:
排序单元2001,用于按照所述源数据集合中各个源数据的ID对所述各个源数据进行排序处理,得到顺序排列的多个源数据。
关联匹配单元2002,用于按照所述各个源数据的顺序,分别将所述下标集合中各下标值与所述各个源数据的ID进行关联匹配,生成随机数据序列,所述随机数据序列包括顺序排列的多个源数据,并且每个源数据的ID对应唯一一个下标值。
可选地,该装置还运行如下单元:
分页处理单元107,用于按照所述随机数据序列中各个源数据的顺序对所述随机数据序列进行分页处理,获得至少一个显示分页,每个显示分页包含顺序排列的至少一个源数据。
访问响应单元108,用于当接收到客户端发送的携带页码的数据访问请求时,向所述客户端返回所请求页码对应的显示分页所包含的源数据。
与图2所示的方法同理,集群服务系统中的任一个服务器通过运行本发明实施例的数据处理装置从而执行相同的数据处理流程,并且,在此流程中各个服务器之间所获得的源数据集合以及下标集合具备一致性,使得各个服务器能够获得一致性的随机数据序列,那么,当客户端以DNS轮询的方式依次访问各个服务器时,各个服务器之间既能够避免为客户端提供重复数据,又能够保证所提供的源数据的连续性,从而提升了集群服务系统的数据处理服务能力。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。