实时规则引擎设计与实现@Neeao2013年12月26日目录需求方案实现挑战目录需求方案实现挑战一大波扫号的出现一般处理流程:分析日志制定防御规则找相关Domain开发防御规则防御规则5分钟内IP登陆超过100次,封IP60分钟如何实现
硬编码iftime=100:blockip60m硬编码--成本每天成功登陆:2WUID账号有钱的UID:10%UID平均账号余额:100元每天存在威胁资金量:2W*10%*100=20W硬编码--成本开发上线时间:1sprint(开发+测试+上线)=14天14*20=280w如何解决
硬编码--改进版将参数放入配置项,需要时更新配置数据:db_gap_time=5mdb_times=100db_block_time=60miftime=db_times:blockipdb_block_time硬编码--改进版一键秒刷,立即生效新的问题:新的规则怎么添加
继续重复硬编码的思路
有没有更好的方法
终极大招将规则逻辑从应用中分离应用提交数据至规则逻辑得到结果规则引擎规则引擎定义:规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策
接受数据输入,解释业务规则,并根据业务规则做出业务决策
应用背景:提高效率,解决复杂的业务规则规则经常变化,IT系统根据规则快速、低成本变化为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与
规则引擎逻辑规则引擎调用接口请求1请求N规则引擎核心数据库适配层INOUTINOUTINOUT规则文件RUN目录需求方案实现挑战功能业务逻辑与应用分离方便调用接口性能与硬编码差别不大轻量级,方便开发维护友好的规则编辑界面现有硬编码规则的集成为什么不用开源产品性能