[发明专利]一种数据分片分布式处理方法、系统、介质和电子设备在审
申请号: | 201910386117.0 | 申请日: | 2019-05-09 |
公开(公告)号: | CN110334091A | 公开(公告)日: | 2019-10-15 |
发明(设计)人: | 孙龙宝 | 申请(专利权)人: | 重庆天蓬网络有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/23;G06F16/2458;G06F16/28;G06F16/27 |
代理公司: | 北京酷爱智慧知识产权代理有限公司 11514 | 代理人: | 袁克来 |
地址: | 401135 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消耗量数据 服务器 分布式处理 电子设备 数据分片 初始化 哈希 队列 关系型数据库 服务器信息 服务器注册 逻辑处理 用户信息 集群 写入 存储 创建 | ||
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所述的方法,其特征在于,该方法还包括基于所述zookeeper监听服务器变更情况,所述服务器变更情况包括新增服务器及删除服务器。
6.根据权利要求5所述的方法,其特征在于,基于所述zookeeper监听服务器变更情况具体包括:
当所述zookeeper监听到新增服务器时,更新所述一致性哈希环,同时在redis中新增一个对于该服务器key的redis列表队列,其他逻辑不变;或
当所述zookeeper监听到服务器删除时,则更新所述一致性哈希环,同时该服务器节点对应redis列表队列中的数据重新分配到其他服务器节点对应的列表队列当中。
7.根据权利要求1所述的方法,其特征在于,步骤6中,所述进行逻辑处理具体包括:
当所述redis列表队列的数据丢失时,从所述mysql数据库中将未处理状态的数据重新进行分片,写入redis列表队列当中。
8.一种数据分片分布式处理系统,该系统用于实现如权利要求1至7之一所述的分布式处理方法,其特征在于,包括:
注册模块,用于将多个初始化服务器注册到zookeeper集群中;
创建模块,用于创建所述多个初始化服务器的一致性哈希环;
接收模块,用于接收单次点击消耗量数据并直接写入mysql关系型数据库;
获取模块,用于通过所述单次点击消耗量数据中的用户信息及所述一致性哈希环获取距离用户最近的服务器信息;
存储模块,用于将所述单次点击消耗量数据存储到获取的所述服务器需要处理的redis列表队列中;
处理模块,用于从服务器的所述redis列表队列中获取所述单次点击消耗量数据,并进行逻辑处理。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7之一所述的分布式处理方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7之一所述的分布式处理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆天蓬网络有限公司,未经重庆天蓬网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910386117.0/1.html,转载请声明来源钻瓜专利网。