一种数据分片分布式处理方法、系统、介质和电子设备技术方案

技术编号:22308189 阅读:72 留言:0更新日期:2019-10-16 08:18
本发明专利技术提供一种数据分片分布式处理方法、系统、介质及电子设备,包括:将多个初始化服务器注册到zookeeper集群中;创建所述多个初始化服务器的一致性哈希环;接收单次点击消耗量数据并直接写入mysql关系型数据库;通过所述单次点击消耗量数据中的用户信息及所述一致性哈希环获取距离用户最近的服务器信息;将所述单次点击消耗量数据存储到获取的所述服务器需要处理的redis列表队列中;从服务器的所述redis列表队列中获取所述单次点击消耗量数据,并进行逻辑处理。

A distributed processing method, system, medium and electronic equipment for data fragmentation

【技术实现步骤摘要】
一种数据分片分布式处理方法、系统、介质和电子设备
本专利技术涉及分布式数据处理
,具体而言,涉及一种数据分片分布式处理方法、系统、介质和电子设备。
技术介绍
随着云计算、移动互联网和物联网等新一代信息技术的创新和应用普及,人类早已进入了大数据时代,越来越多的企业需要利用对于大数据的分析来协助企业作出决策,而不同于以往仅仅只是利用经验及直觉。因此,企业对于大数据量的分析处理具有很大的需求。分布式数据处理系统(DistributedDataStreamManagementSystem,DDSMS)是可以对数据进行分布式处理的系统。DDSMS可以极大地缩短数据处理时间,提高响应速度,在实际生活中具有极其广泛的用途。一般来说,一个DDSMS具有以下的功能:(1)由于物理存储空间的限制和处理效率的要求,对数据流进行在线处理时,一般只扫描数据一遍;(2)在一定的时间内,能够对数据进行排序,使无序变为有序;(3)对用户而言,传统的DDSMS的程序设计使用户对数据的查询具有很好的实时性;(4)传统的DDSMS在处理数据中,当遇到数据流的数据量巨大已超过系统的承载能力时,随机或者有选择地清除一些数据以缓解系统数据的膨胀;(5)传统的DDSMS对异常数据的处理也提出了一些要求,首先要迅速,同时要合乎实时的要求;(6)及时的数据用户的接口能够为用户提供方便的数据信息查询。基于云计算的大数据统一分析处理方法,可以将海量结构化、非结构化和半结构化数据分布式处理,能解析异构数据的查询分析请求,按照查询分析的数据对象所在位置调度数据处理计算,将数据分析处理计算分布到各数据存储节点上,实现异构数据的并行分析处理,提供统一数据访问接口具有克服了大数据分析处理的复杂性和挑战性,满足大数据处理的规模不断增长和实时性需求等优点。然而,在进行广告信息推送以及数据统计时,特别是针对cpc(“CostPerClick”的英文缩写,每一次点击)用户消耗统计场景;用户的点击广告的并发量很高,如cpc点击产品峰值qps超1000,同时cpc消耗统计涉及资金事务处理的外部系统调用,存储在mysql的数据也会因为数据量庞大导致读取性能急剧降低,从而使处理速度较慢。因此,在长期的研发当中,专利技术人对数据处理进行了大量的研究,提出了一种数据分片分布式处理方法,以解决上述技术问题之一。
技术实现思路
本专利技术的目的在于提供一种数据分片分布式处理方法、系统、介质和电子设备,能够解决上述提到的至少一个技术问题。具体方案如下:一种数据分片分布式处理方法,该方法应用于数据分片分布式处理系统,该系统包括注册模块、创建模块、接收模块、获取模块、存储模块、以及处理模块,该方法包括:步骤1,注册模块将多个初始化服务器注册到zookeeper集群中;步骤2,创建模块创建所述多个初始化服务器的一致性哈希环;步骤3,接收模块接收单次点击消耗量数据并直接写入mysql关系型数据库;步骤4,获取模块通过所述单次点击消耗量数据中的用户信息以及所述一致性哈希环,获取距离用户最近的服务器信息;步骤5,存储模块将所述单次点击消耗量数据存储到获取的所述服务器需要处理的redis列表队列中;步骤6,处理模块从服务器的所述redis列表队列中获取所述单次点击消耗量数据,并进行逻辑处理。进一步的,步骤2中,所述创建所述多个初始化服务器的一致性哈希环具体包括:分配M个虚拟节点给N台服务器节点;通过FNV1哈希算法对所述虚拟节点进行哈希计算,得到哈希值;将得到的所述哈希值存储在节点哈希表中,则所述一致性哈希环上就会产生N*M个节点。进一步的,步骤4中,所述通过所述单次点击消耗量数据中的用户信息以及所述一致性哈希环获取距离用户最近的服务器信息,具体包括:根据所述单次点击消耗量数据中的用户信息,通过FNV1哈希算法计算哈希值;从所述一致性哈希环中查找距离通过FNV1哈希算法计算的哈希值最近的虚拟节点;根据所述最近的虚拟节点信息获取对应的服务器节点。进一步的,步骤5,所述将所述单次点击消耗量数据存储到获取的所述服务器需要处理的redis列表队列中,具体包括:根据所述服务器的redis列表队列对应的key,将所述单次点击消耗量数据放入所述key对应的列表队列当中。进一步的,该方法还包括基于所述zookeeper监听服务器变更情况,所述服务器变更情况包括新增服务器及删除服务器。进一步的,基于所述zookeeper监听服务器变更情况具体包括:当所述zookeeper监听到新增服务器时,更新所述一致性哈希环,同时在redis中新增一个对于该服务器key的redis列表队列,其他逻辑不变;或当所述zookeeper监听到服务器删除时,则更新所述一致性哈希环,同时该服务器节点对应redis列表队列中的数据重新分配到其他服务器节点对应的列表队列当中。进一步的,步骤6中,所述进行逻辑处理具体包括:当所述redis列表队列的数据丢失时,从所述mysql数据库中将未处理状态的数据重新进行分片,写入redis列表队列当中。一种数据分片分布式处理系统,该系统用于实现上述分布式处理方法,包括:注册模块,用于将多个初始化服务器注册到zookeeper集群中;创建模块,用于创建所述多个初始化服务器的一致性哈希环;接收模块,用于接收单次点击消耗量数据并直接写入mysql关系型数据库;获取模块,用于通过所述单次点击消耗量数据中的用户信息及所述一致性哈希环获取距离用户最近的服务器信息;存储模块,用于将所述单次点击消耗量数据存储到获取的所述服务器需要处理的redis列表队列中;处理模块,用于从服务器的所述redis列表队列中获取所述单次点击消耗量数据,并进行逻辑处理。一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现上述分布式处理方法。一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7之一所述的分布式处理方法。本专利技术实施例的上述方案与现有技术相比,能对高并发且带有复杂事务处理的数据进行数据分片存储,进而能快速获取数据,并进行可对该数据简单处理无需关系分布式事务的问题。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1示出了根据本专利技术实施例的一种数据分片分布式处理方法流程图;图2示出了根据本专利技术实施例的创建所述多个初始化服务器的一致性哈希环的方法流程图;图3示出了根据本专利技术实施例的一致性哈希环的结构示意图;图4示出了根据本专利技术实施例的通过所述单次点击消耗量数据中的用户信息及所述一致性哈希环获取距离用户最近的服务器信息的方法流程图;图5示出了根据本专利技术的实施例的一种数据分片分布式处理系统的结构示意图;图6示出了根据本专利技术的实施例的电子设备的结构示意图;图7示出了根据本专利技术的实施例的电子设备连接结构示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本本文档来自技高网
...

【技术保护点】
1.一种数据分片分布式处理方法,该方法应用于数据分片分布式处理系统,该系统包括注册模块、创建模块、接收模块、获取模块、存储模块、以及处理模块,其特征在于,该方法包括:步骤1,注册模块将多个初始化服务器注册到zookeeper集群中;步骤2,创建模块创建所述多个初始化服务器的一致性哈希环;步骤3,接收模块接收单次点击消耗量数据并直接写入mysql关系型数据库;步骤4,获取模块通过所述单次点击消耗量数据中的用户信息以及所述一致性哈希环,获取距离用户最近的服务器信息;步骤5,存储模块将所述单次点击消耗量数据存储到获取的所述服务器需要处理的redis列表队列中;步骤6,处理模块从服务器的所述redis列表队列中获取所述单次点击消耗量数据,并进行逻辑处理。

【技术特征摘要】
1.一种数据分片分布式处理方法,该方法应用于数据分片分布式处理系统,该系统包括注册模块、创建模块、接收模块、获取模块、存储模块、以及处理模块,其特征在于,该方法包括:步骤1,注册模块将多个初始化服务器注册到zookeeper集群中;步骤2,创建模块创建所述多个初始化服务器的一致性哈希环;步骤3,接收模块接收单次点击消耗量数据并直接写入mysql关系型数据库;步骤4,获取模块通过所述单次点击消耗量数据中的用户信息以及所述一致性哈希环,获取距离用户最近的服务器信息;步骤5,存储模块将所述单次点击消耗量数据存储到获取的所述服务器需要处理的redis列表队列中;步骤6,处理模块从服务器的所述redis列表队列中获取所述单次点击消耗量数据,并进行逻辑处理。2.根据权利要求1所述的方法,其特征在于,步骤2中,所述创建所述多个初始化服务器的一致性哈希环具体包括:分配M个虚拟节点给N台服务器节点;通过FNV1哈希算法对所述虚拟节点进行哈希计算,得到哈希值;将得到的所述哈希值存储在节点哈希表中,则所述一致性哈希环上就会产生N*M个节点。3.根据权利要求1所述的方法,其特征在于,步骤4中,所述通过所述单次点击消耗量数据中的用户信息以及所述一致性哈希环获取距离用户最近的服务器信息,具体包括:根据所述单次点击消耗量数据中的用户信息,通过FNV1哈希算法计算哈希值;从所述一致性哈希环中查找距离通过FNV1哈希算法计算的哈希值最近的虚拟节点;根据所述最近的虚拟节点信息获取对应的服务器节点。4.根据权利要求1所述的方法,其特征在于,步骤5,所述将所述单次点击消耗量数据存储到获取的所述服务器需要处理的redis列表队列中,具体包括:根据所述服务器的redis列表队列对应的key,将所述单次点击消耗量数据放入所述key对应的列表队列当中。5.根据权利要求1所述的方法,其特征在于,该方法还包括基于所述zoo...

【专利技术属性】
技术研发人员:孙龙宝
申请(专利权)人:重庆天蓬网络有限公司
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1