说明:收录全网最新的团体标准 提供单次或批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210109016.0 (22)申请日 2022.01.28 (71)申请人 中国建设银行股份有限公司 地址 100033 北京市西城区金融大街25号 (72)发明人 邓清文  (74)专利代理 机构 北京三友知识产权代理有限 公司 11127 专利代理师 贾磊 许曼 (51)Int.Cl. G06F 9/54(2006.01) G06F 16/23(2019.01) G06F 16/2455(2019.01) G06Q 30/00(2012.01) (54)发明名称 一种消息幂等处理、 生成和消费方法、 装置 和计算机设备 (57)摘要 本文提供了一种消息幂等处理、 生成和消费 方法、 装置和计算机设备, 涉及大数据数据分析 技术领域, 其中消息幂等处理方法包括接收消费 者对消息的消费请求; 解析消费请求, 获得消息 的唯一标识符和业务版本号; 根据唯一标识符, 查询redis缓存中预先存储的与消息相对应的目 标版本号; 判断业务版本号与目标版本号是否一 致; 当一致时, 确定消息为未消费并反馈给消费 者, 以使消费者获取消息的业务代码并消费消 息; 并将目标版本号由初值改为终值。 本文利用 消息的版本号来表征消息的消费状态, 能够避免 状态流转失败甚至状态逆流转的问题, 从而避免 了消息不幂等的情况; 采用redis缓存能够在高 并发场景 下, 降低系统I/O, 提高系统吞吐量。 权利要求书4页 说明书16页 附图7页 CN 114490131 A 2022.05.13 CN 114490131 A 1.一种消息幂等处 理方法, 其特 征在于, 包括: 接收消费者对消息的消费请求; 解析所述消费请求, 获得与所述消息相对应的唯一标识符和业 务版本号; 根据所述唯一标识符, 查询redis缓存中预 先存储的与所述消息相对应的目标 版本号; 判断所述 业务版本号与所述目标 版本号是否一 致; 当所述业务版本号与所述目标版本号一致时, 确定所述消息为未消费并反馈给消费 者, 以使所述消费者获取所述消息的业务代码并消费所述消息; 并将所述 目标版本号由初 值改为终值。 2.根据权利 要求1所述的方法, 其特征在于, 所述根据所述唯一标识符, 查询redis缓存 中预先存储的与所述消息相对应的目标 版本号之前, 所述方法还 包括: 判断是否成功获取 所述redis缓存的文件锁; 若是, 则查询所述redis缓存中预 先存储的与所述消息相对应的目标 版本号; 若否, 则确定所述消费者 不具备对所述消息的消费资格。 3.根据权利 要求1所述的方法, 其特征在于, 所述根据所述唯一标识符, 查询redis缓存 中预先存储的与所述消息相对应的目标 版本号之前, 所述方法还 包括: 解析所述消费请求, 获得与所述消息相对应的过期时间; 根据所述过期时间和当前时间戳判断所述消息是否过期; 若所述消息未过期, 则查询所述redis缓存中预先存储的与所述消息相对应的目标版 本号; 若所述消息已过期, 则发送消息过期提醒 给所述消息的生产者。 4.根据权利要求3所述的方法, 其特 征在于, 若所述消息已过期, 所述方法还 包括: 删除所述redis缓存中存 储的所述消息的所述唯一标识符和所述目标 版本号。 5.根据权利 要求3所述的方法, 其特征在于, 所述若所述消息未过期, 则查询所述redis 缓存中预 先存储的与所述消息相对应的目标 版本号, 进一 步包括: 根据所述唯一标识符, 查询所述redis缓存中是否存储有与所述消息相对应的唯一标 识符和目标 版本号; 若不存在, 则将解析得到的所述唯一标识符同步至所述redis缓存中, 以及将所述业务 版本号同步至所述redis缓存中作为所述目标 版本号。 6.根据权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 当所述业务版本号与 所述目标版本号不一致 时, 确定所述消息为已消费并生成消费异 常提醒以反馈给 所述消费者和所述消息的生产者。 7.一种消息幂等处 理装置, 其特 征在于, 包括: 第一接收模块, 用于 接收消费者对消息的消费请求; 解析模块, 用于解析所述消费请求, 获得与所述消息相对应的唯一标识符和业务版本 号; 查询模块, 用于根据所述唯一标识符, 查询redis缓存中预先存储的与所述消息相对应 的目标版本号; 判断模块, 用于判断所述 业务版本号与所述目标 版本号是否一 致; 执行模块, 用于当所述业务版本号与所述目标版本号一致时, 确定所述消息为未消费权 利 要 求 书 1/4 页 2 CN 114490131 A 2并反馈给消费者, 以使所述消费者获取所述消息的业务代码并消费所述消息; 并将所述 目 标版本号由初值改为终值。 8.根据权利要求7 所述的装置, 其特 征在于, 所述装置还 包括判断模块; 所述判断模块用于在根据所述唯一标识符, 查询redis缓存中预先存储的与所述消息 相对应的目标 版本号之前, 判断是否成功获取 所述redis缓存的文件锁; 若是, 则查询所述redis缓存中预 先存储的与所述消息相对应的目标 版本号; 若否, 则确定所述消费者 不具备对所述消息的消费资格。 9.一种消息生成方法, 其特 征在于, 包括: 生成消息, 所述消息包括业务代码和与所述消息相对应的唯一标识符和业务版本号, 所述唯一标识符用于唯一确定所述消息, 所述 业务版本号用于标记所述消息的消费状态; 将所述消息存 储于消息中间件中, 以使所述消息中间件将所述消息推送给消费者; 将所述唯一标识符同步存储于redis缓存中, 以及将所述业务版本号同步存储于redis 缓存中作为目标 版本号。 10.根据权利要求9所述的方法, 其特 征在于, 所述方法还 包括: 接收消费者反馈的业 务代码异常信息; 根据所述业务代码异常信 息, 调度备份在数据库中的与 所述业务代码相对应的原始业 务数据, 以根据所述原 始业务数据组装得到所述 业务代码并发送至所述消息中间件中。 11.一种消息生成装置, 其特 征在于, 包括: 消息生成模块, 用于生成消息, 所述消息包括业务代码和与所述消息相对应的唯一标 识符和业务版本号, 所述唯一标识符用于唯一确定所述消息, 所述业务版本号用于标记所 述消息的消费状态; 存储模块, 用于将所述消息存储于消息中间件中, 以使所述消息中间件将所述消息推 送给消费者; 同步模块, 用于将所述唯一标识符同步存储于redis缓存中, 以及将所述业务版本号同 步存储于redis缓存中作为目标 版本号。 12.一种消息消费方法, 其特 征在于, 包括: 获取消息 中间件推送的消息, 所述消息包括与 所述消息相对应的唯一标识符和业务版 本号; 生成对所述消息的消费请求并发送给消息幂等处理装置, 所述消费请求包括所述唯一 标识符和所述业务版本号, 以使 所述消息幂等处理装置根据所述唯一标识符和所述业务版 本号反馈所述消息的消费状态; 接收所述消息幂等处 理装置返回的所述消息的消费状态; 当所述消费状态为未消费时, 基于所述唯一标识符查询所述消息 中间件以获取所述消 息的业务代码, 并执 行所述业务代码以消费所述消息 。 13.根据权利要求12所述的方法, 其特征在于, 当根据所述唯一标识符未能从所述消息 中间件中获取 所述业务代码时, 所述方法还 包括: 生成业务代码异常信 息并反馈给消息生成装置, 以使所述消息生成装置调度 备份在数 据库中的与所述业务代码相对应的原始 业务数据, 并基于所述原始 业务数据组装得到所述 业务代码并发送至所述消息中间件中。权 利 要 求 书 2/4 页 3 CN 114490131 A 3

.PDF文档 专利 一种消息幂等处理、生成和消费方法、装置和计算机设备

文档预览
中文文档 28 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共28页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种消息幂等处理、生成和消费方法、装置和计算机设备 第 1 页 专利 一种消息幂等处理、生成和消费方法、装置和计算机设备 第 2 页 专利 一种消息幂等处理、生成和消费方法、装置和计算机设备 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 11:15:35上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。