实时规则引擎的设计与实现 publicppt课件.pptxVIP

实时规则引擎的设计与实现 publicppt课件.pptx

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实时规则引擎的设计与实现 publicppt课件

实时规则引擎设计与实现 @Neeao 2017年5月26日 目录 需求 方案 实现 挑战 目录 需求 方案 实现 挑战 一大波扫号的出现 一般处理流程: 分析日志 制定防御规则 找相关Domain开发防御规则 防御规则 5分钟内IP登陆超过100次,封IP60分钟 如何实现? 硬编码 if time=5m and count()=100:   block ip 60m 硬编码--成本 每天成功登陆:2W UID 账号有钱的UID:10% UID平均账号余额:100元 每天存在威胁资金量: 2W*10%*100 = 20W 硬编码--成本 开发上线时间: 1 sprint(开发+测试+上线)=14天 14*20 = 280w 如何解决? 硬编码--改进版 将参数放入配置项,需要时更新配置数据: db_gap_time=5m db_times=100 db_block_time=60m if time=db_gap_time and count()=db_times: block ip db_block_time 硬编码--改进版 一键秒刷,立即生效 新的问题: 新的规则怎么添加? 继续重复硬编码的思路? 有没有更好的方法? 终极大招 将规则逻辑从应用中分离 应用提交数据至规则逻辑得到结果 规则引擎 规则引擎 定义: 规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。 应用背景: 提高效率,解决复杂的业务规则 规则经常变化,IT系统根据规则快速、低成本变化 为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。 规则引擎逻辑 规则引擎调用接口 请求1 请求N 规则引擎核心 数据库 适配层 IN OUT IN OUT IN OUT 规则文件 RUN 目录 需求 方案 实现 挑战 功能 业务逻辑与应用分离 方便调用接口 性能与硬编码差别不大 轻量级,方便开发维护 友好的规则编辑界面 现有硬编码规则的集成 为什么不用开源产品 性能原因 队列特性、实时性无法满足 现有Java规则逻辑的很难复用 学习维护成本高 规则逻辑脚本语言 Groovy 优点: 基于JVM(Java虚拟机) 借鉴Python、Ruby和Smalltalk的许多强大的特性,支持DSL,语法简洁 直接调用现有Java的类库,Java无缝集成 方便的实例化接口 性能方面 内存加载 Groovy规则脚本 Java Object 规则管理 规则库 Web管理 (规则版本) 规则引擎 规则流程 目录 需求 方案 实现 挑战 实现 Groovy脚本加载为Java对象 接口参数支持多参数、任意类型 规则脚本执行流程 Sandbox 规则Web管理及测试 规则调用流程 Groovy脚本加载为Java对象 接口参数支持多参数、任意类型 规则脚本执行流程 Groovy--SandBox 默认导入包定义 SecureASTCustomizer 闭包:{} 包导入:import 包定义:package 方法定义:public static void main 方法返回值定义:return Integer/Double/String 运算符定义: PLUS/MINUS/MULTIPLY/ DIVIDE /Advanced+compiler+configuration / 规则Web管理及测试 规则Web管理及测试 规则Web管理及测试 规则调用流程 目录 需求 方案 实现 挑战 挑战 应用接入 规则接口数据定义 更友好的规则编辑界面 Q/A

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档