(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211124139.8
(22)申请日 2022.09.15
(71)申请人 福建天泉教育科技有限公司
地址 350212 福建省福州市长乐区湖南 镇
大鹤村 (福建天棣动漫科技有限公司)
(72)发明人 刘德建 李勤 陈明永 郑坦
陈宏
(74)专利代理 机构 福州市博深专利事务所(普
通合伙) 35214
专利代理师 张明
(51)Int.Cl.
G06F 16/22(2019.01)
G06F 16/23(2019.01)
G07C 15/00(2006.01)
(54)发明名称
基于一致性哈希算法的抽奖方法及计算机
可读存储介质
(57)摘要
本发明公开了一种基于一致性哈希算法的
抽奖方法及计算机可读存储介质, 方法包括: 根
据预设的值域, 生成环形 队列; 根据预设的各奖
项的奖项数据, 计算各奖项对应的哈希值, 并分
别根据各奖项对应的哈希值, 在所述环形队列中
增加各奖项对应的节点; 根据抽奖者的用户数据
和抽奖时间戳, 计算所述抽奖者对应的哈希值,
并将所述抽奖者对应的哈希值在所述环形队列
的顺时针方向上最近的节点对应的奖项, 作为所
述抽奖者抽中的奖项。 本发明可在高并发的情况
下保证抽奖服 务的处理能力。
权利要求书1页 说明书5页 附图5页
CN 115543999 A
2022.12.30
CN 115543999 A
1.一种基于一 致性哈希算法的抽奖 方法, 其特 征在于, 包括:
根据预设的值 域, 生成环形队列;
根据预设的各奖项的奖项数据, 计算各奖项对应的哈希值, 并分别根据各奖项对应的
哈希值, 在所述环形队列中增 加各奖项对应的节点;
根据抽奖者的用户数据和抽奖时间戳, 计算所述抽奖者对应的哈希值, 并将所述抽奖
者对应的哈希值在所述环形队列的顺时针方向上最近的节点对应的奖项, 作为所述抽奖者
抽中的奖项。
2.根据权利要求1所述的基于一致性哈希算法的抽奖方法, 其特征在于, 所述奖项数据
为加盐后的奖项对象字符串。
3.根据权利要求1所述的基于一致性哈希算法的抽奖方法, 其特征在于, 所述根据抽奖
者的用户数据和抽奖时间戳, 计算所述抽奖者对应的哈希值, 并将所述抽奖者对应的哈希
值在所述环形队列的顺时针方向上最近的节点对应的奖项, 作为所述抽奖者抽中的奖项之
后, 进一步包括:
对抽奖者抽中的奖项的奖品数量进行 更新, 并记录更新日志。
4.根据权利要求3所述的基于一致性哈希算法的抽奖方法, 其特征在于, 所述对抽奖者
抽中的奖项的奖品数量进行 更新之后, 进一 步包括:
若一奖项的奖品数量 为零, 则在所述环形队列上删除所述 一奖项对应的节点。
5.根据权利要求1所述的基于一 致性哈希算法的抽奖 方法, 其特 征在于, 还 包括:
当需要扩容时, 新增实例;
所述实例启动时, 根据 预设的值域, 生成环形队列, 并在所述环形队列中增加剩余奖项
对应的节点, 所述剩余奖项为奖品数量 不为零的奖项;
所述实例启动 后, 将所述实例的路由加入至网关。
6.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 所述程序被处理器
执行时实现如权利要求1 ‑5任一项所述的方法。权 利 要 求 书 1/1 页
2
CN 115543999 A
2基于一致性哈希算法的抽奖方 法及计算机可 读存储介质
技术领域
[0001]本发明涉及抽奖技术领域, 尤其涉及一种基于一致性哈希算法的抽奖方法及计算
机可读存 储介质。
背景技术
[0002]抽奖业务应对高并发抽 奖时, 特别是在奖品和奖券总数相等的场景下, 需要保障
用户每次抽奖均有对应的中奖情况, 且在奖品扣减的时候需要避免奖品的超中。 一般情况
下面向高并发的抽奖业务, 采用分布式服务应对大流量, 根据奖项及其个数和中奖机率定
义一个奖品概率数 组, 并采用使用redis存储缓存管 理员配置的抽奖相关数据及数 组, 用户
进行抽奖时, 若随机数落在概 率数组上, 则抽中对应的奖项。
[0003]但上述方法存在几个问题, 1、 业务上, 抽奖业务在高并发下实现复杂, 当用户中某
个奖品, 可能存在奖品为空的场景, 需要递归地进 行奖品获取(例如, 有2个用户同时抽中三
等奖, 进行扣减的时候发现三等奖只有1个, 此时第二个用户需要进行四等奖判断, 如果四
等奖也无奖品了, 需要再次递归), 可能引发超时、 死锁等现象, 影响抽奖的处理能力, 导致
业务处理失败; 2, 运维上, 当流量超 过单台redis流量时, 还需考虑架构上的升级, 不仅仅需
要升级抽奖服务, 还需要增加redis分片, 即在高并发场景下, 需要考虑横向扩容等机制, 无
论从系统架构上, 还是系统运维上, 难度 都增加了一个层级; 3、 可用性上, 引入redis后, 由
于多了个网元, 可用性保障必然会下降。
[0004]因此, 如何实现较轻量的框架或模块, 通过一定的抽奖算法快速地响应, 提升用户
的抽奖体验, 同时在流 量较大的情况 下, 能快速地进行扩容, 成为有 待解决的问题。
发明内容
[0005]本发明所要解决的技术问题是: 提供一种基于一致性哈希算法的抽奖方法及计算
机可读存 储介质, 可在高并发的情况 下保证抽奖服 务的处理能力。
[0006]为了解决上述技术问题, 本发明采用的技术方案为: 一种基于一致性 哈希算法的
抽奖方法, 包括:
[0007]根据预设的值 域, 生成环形队列;
[0008]根据预设的各奖项的奖项数据, 计算各奖项对应 的哈希值, 并分别根据各奖项对
应的哈希值, 在所述环形队列中增 加各奖项对应的节点;
[0009]根据抽奖者的用户数据和抽 奖时间戳, 计算所述抽 奖者对应的哈希值, 并将所述
抽奖者对应的哈希值在所述环形队列的顺时针方向上最近的节点对应的奖项, 作为所述抽
奖者抽中的奖项。
[0010]本发明还提出一种计算机可读存储介质, 其上存储有计算机程序, 所述程序被处
理器执行时实现如上 所述的方法。
[0011]本发明的有益效果在于: 通过构建环形队列并在环形队列上增加各奖项对应的节
点, 实现奖项与一致性hash节点之间的映射, 便于进行奖项管理; 通过计算抽奖者对应的说 明 书 1/5 页
3
CN 115543999 A
3
专利 基于一致性哈希算法的抽奖方法及计算机可读存储介质
安全报告 >
其他 >
文档预览
中文文档
12 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 思考人生 于 2024-02-07 20:38:24上传分享