说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210749790.8 (22)申请日 2022.06.29 (71)申请人 上海汇付支付有限公司 地址 200233 上海市徐汇区宜山路70 0号C5 栋5楼 (72)发明人 周晔 穆海洁 朱银锋 陈锋  贾世纪 蔡华涛 徐航 徐清超  (74)专利代理 机构 上海专利商标事务所有限公 司 31100 专利代理师 施浩 (51)Int.Cl. G06F 16/2455(2019.01) G06F 16/242(2019.01) G06Q 40/04(2012.01) (54)发明名称 一种软件应用多 级缓存及流 量过滤的方法 (57)摘要 本发明公开了一种软件应用多级缓存及流 量过滤的方法, 减少数据库访问, 消除存储和计 算瓶颈, 提升处理性能。 其技术方案为: 第一方 面, 聚合查询结果按记录数和时间区间来缓存, 降低数据库 负载, 提高响应时效。 第二方面, 采用 二级限流策略, 其中一级限流保护数据库为扩容 预留缓冲时间, 二级限额策略对 大额交易实现无 损管控。 第三方面, 利用布隆过滤器在空间和时 间方面有巨大优势, 其概率型数据结构天然契合 黑名单匹配的低命中率场景, 因此无需直接访问 redis库缓存, 系统性能得到数倍 提升。 权利要求书1页 说明书7页 附图5页 CN 115114335 A 2022.09.27 CN 115114335 A 1.一种软件应用多级缓存及流量过滤的方法, 其特征在于, 包括先进行的Mongo库访问 流量过滤的处理, 以及之后进行的Mo ngo库聚合 查询的处 理, 其中: Mongo库访问流 量过滤的处理过程包括: 首先通过第 一限流器判断流量是否大于第 一阈值, 若是则直接限流多余流量不访问数 据库, 若否则继续执 行下一步骤; 通过第二 限流器判断流量是否大于第二阈值, 若是则继续判断是否为小额交易, 若为 小额交易则不访问数据库, 若不会小额交易则进行Mongo库聚合查询, 其中第一阈值大于第 二阈值; Mongo库聚合 查询的处 理包括: 步骤1: 判断缓存是否命中原始的聚合查询请求, 若命中则执行步骤2, 若未命中则执行 步骤3; 步骤2: 在命中缓存的情况下, 缩短原始的聚合查询请求的查询时间区间以生成新的聚 合查询请求, 再 执行步骤3; 步骤3: 进行Mo ngo库的聚合 查询; 步骤4: 判断Mongo查询结果是否触发缓存阈值, 如果触发则进行步骤5, 如果未触发则 Mongo库聚合 查询的流 程结束; 步骤5: 在内存中更新缓存的查询时间区间和聚合查询结果, 然后分别进行步骤6和步 骤7; 步骤6: 非当前缓存失效; 步骤7: 每隔设定周期将内存缓存持久化存 储。 2.根据权利要求1所述的软件应用多级缓存及流量过滤的方法, 其特征在于, Mongo库 访问流量过滤 的处理中, 第一限流器和第二限流器的配置组成了数据库二级限流策略, 其 中一级限流保护数据库为扩容预留缓冲时间, 二级限额策略对大额交易实现无损管控。 3.根据权利要求1所述的软件应用多级缓存及流量过滤的方法, 其特征在于, 步骤1中 是根据聚合条件SQL是否一致来判断缓存是否命中, 若一致则判定为命中, 若不一致则判定 为未命中。 4.根据权利要求1所述的软件应用多级缓存及流量过滤的方法, 其特征在于, 在步骤3 中, 若是在未命中缓存的情况下, 当前聚合查询结果是基于原始的聚合查询请求直接查库 所得到的聚合查询结果; 若是在命中缓存的情况下, 当前聚合查询结果是之前缓存的聚合 查询结果和步骤2中所生成的新的聚合 查询请求所 得到的聚合 查询结果的总和。 5.根据权利要求1所述的软件应用多级缓存及流量过滤的方法, 其特征在于, 在步骤7 中, 持久化存储包括存储到本地磁盘或者云存储中, 以防应用启动 或应用故障时内存缓存 数据的丢失。 6.根据权利要求1所述的软件应用多级缓存及流量过滤的方法, 其特征在于, 在步骤7 中, 若遇到应用重启则将缓存从 持久化存 储预热到内存中, 以完成 缓存初始化。 7.根据权利要求1所述的软件应用多级缓存及流量过滤的方法, 其特征在于, 方法还包 括: 将布隆过滤器应用于名单匹配, 对名单进行压缩 映射后缓存于内存中, 在交易做名单 匹配时对不在redis库中的名单直接过 滤不访问库。权 利 要 求 书 1/1 页 2 CN 115114335 A 2一种软件应用多级缓存及流量过滤的方 法 技术领域 [0001]本发明涉及 一种多级缓存及流量过滤的方法, 具体涉及应用于支付领域的风控场 景下的软件应用多级缓存及流量过滤的方法, 为基础配置、 热点数据聚合计算、 键值匹配选 择和设计最佳的缓存方案, 减少数据库访问, 消除存 储和计算 瓶颈, 提升系统 处理性能。 背景技术 [0002]在支付领域的风控核心模块, 一般由路由、 规则引擎、 限额限次、 名单等构成。 其中 路由、 规则配置在千条以下, 借助内存缓存定时从RDS库(Relational  Database  Service, 关系型数据库)查询加载 可以轻松应对。 [0003]限额限次需要计算商户、 用户、 代理商等不 同交易主体在各交易场景下的累计金 额、 笔数。 过滤维度组合灵活多变, 面临的挑战和亟需解决的主 要问题是: [0004]一、 敏捷迭代的业 务, 需求变动频繁, 数据模型 无法确定; [0005]二、 业务并发访问量大, 需数千的QP S(Queries ‑per‑second, 每秒查询率); [0006]三、 系统需支持可弹性扩展数据量, 每天都在增加计算能力和存储容量, 需弹性扩 展; [0007]四、 系统的响应速度必须足够快, 在百毫秒内返回结果。 [0008]基于以上业务特点, 由于主流技术中MongoDB天然支持高可用、 分布式、 高性能、 高 压缩、 schema  free、 完善的客户端访问均衡策略等功能, 因此最终选择MongoDB作为核心存 储。 随着业务发展交易量上升, 热点商户的日累计金额笔数聚合计算处理时长很快达几十 上百毫秒, 数据库负载也急剧升高。 [0009]另一方面, 风控核心模块中的黑名单匹配属于简单的比较。 由于主流技术中 Redis/memcached等高性能的key ‑value数据库, 为了保证效率, 数据都是缓存在内存中, 在 部分场合可以对关系型数据库起到很好的补充作用, 因此采用redis缓存作为名单存储库。 一笔交易中有多种名单类型, 每个名单类型有多个值, 计较次数在几十次以上。 黑名单库数 据量较大, 在百万级别以上, 另外黑名单的命中比例很低, 如直接使用redis则集群tps(系 统吞吐量)很容 易达到万级。 [0010]综上, 如何研发新的技术手段, 来降低数据库的负载, 提高响应时效, 是目前业界 亟待解决的问题。 发明内容 [0011]以下给出一个或多个方面的简要概述以提供对这些方面的基本 理解。 此概述不是 所有构想到的方面的详尽综览, 并且既非旨在指认出所有方面的关键性或决定性要素亦非 试图界定任何或所有方面的范围。 其唯一的目的是要以简化形式给出一个或多个方面的一 些概念以为稍后给 出的更加详细的描述之序。 [0012]本发明的目的在于解决上述问题, 提供了一种软件应用多级缓存及流量过滤的方 法, 能够减少数据库访问, 消除存 储和计算 瓶颈, 提升处 理性能。说 明 书 1/7 页 3 CN 115114335 A 3

.PDF文档 专利 一种软件应用多级缓存及流量过滤的方法

文档预览
中文文档 14 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种软件应用多级缓存及流量过滤的方法 第 1 页 专利 一种软件应用多级缓存及流量过滤的方法 第 2 页 专利 一种软件应用多级缓存及流量过滤的方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:12:26上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。