规则引擎到底是什么?三分钟让你彻底搞懂
前言你是不是也被这些词搞晕了说实话我刚接触规则引擎这个词的时候也是一头雾水。那时候我在一家金融公司做技术老板天天把规则引擎、业务流程管理系统、决策引擎挂在嘴边我当时就在想这些都是些啥玩意儿有什么区别后来我花了不少时间去研究这些概念用了也有一段时间了才算彻底搞明白。今天我就用最通俗的话给大家讲讲规则引擎到底是什么它是怎么工作的说实话这玩意儿没那么复杂。一、规则引擎是什么1.1 通俗解释说白了规则引擎就是一个智能判官。你想想我们生活中有很多判官考试的判官根据你的答题情况判断你能不能录取银行的判官根据你的信用情况判断能不能放贷保险的判官根据你的风险情况判断能不能承保这些判官是怎么做判断的他们脑子里有一套规则比如银行信贷员的判断规则可能是这样的规则引擎说白了就是把这套判断规则从人的脑子里搬到计算机里。计算机按照你定义的规则自动做判断不需要人去干预。1.2 专业定义用专业点的话说**规则引擎Rule Engine**是一种嵌入在应用程序中的组件它实现了将业务规则从应用代码中分离出来以声明的方式而不是以代码的方式定义业务规则。规则引擎接收数据输入根据预定义的规则进行推理和判断最后输出决策结果。人话翻译一下业务规则就是刚才说的判断规则从应用代码中分离不用写代码用配置的方式声明的方式用界面化的方式配置不是写代码推理和判断根据输入数据按照规则做判断输出决策结果告诉你通过、拒绝、还是需要人工审核1.3 举个栗子让我举个最简单的例子场景判断一个人能不能贷款不用规则引擎的方式写代码用规则引擎的方式配置看出来区别了吗写代码的方式业务规则硬编码在程序里要修改规则得改代码、测试、上线得技术人员来做业务人员搞不定用规则引擎的方式业务规则配置在界面上要修改规则直接改配置就行业务人员自己就能搞定只需要在界面上简单的拖拽几个规则节点设置好几组判断的条件即可如下图所示二、规则引擎的核心组件2.1 规则引擎长什么样规则引擎一般包含这几个核心组件组件1规则管理器组件2规则执行器组件3规则编辑器组件4数据接口2.2 规则引擎的工作流程规则引擎的工作流程说起来也挺简单的举个实际的例子三、规则引擎的工作原理3.1 规则的表示方法规则在计算机里是怎么表示的有好几种方法方法1If-Then规则方法2决策表方法3决策树方法4产生式规则3.2 规则执行引擎规则执行引擎是怎么工作的说白了就是匹配-执行两个步骤步骤1规则匹配步骤2执行动作举个例子3.3 推理算法规则引擎是怎么做推理的主要用到了以下几种算法算法1Rete算法算法2决策表算法算法3决策树算法算法4前向链算法四、规则引擎的应用场景4.1 金融风控最典型场景1贷款审批场景2交易监控4.2 营销系统场景1优惠券发放场景2会员等级4.3 计息系统场景1利息计算4.4 权限管理场景1访问控制五、规则引擎 vs 写代码5.1 对比分析对比项规则引擎写代码业务规则修改界面化修改即时生效改代码、测试、上线业务人员参与业务人员可直接配置必须技术人员参与灵活性高可以随时调整低需要发版复杂度复杂规则也能处理复杂逻辑需要编码实现维护成本低高学习成本低高5.2 什么时候用规则引擎适合用规则引擎的场景✅ 业务规则经常变化✅ 业务人员需要自主配置✅ 需要快速响应市场变化✅ 规则逻辑比较复杂✅ 需要对规则进行版本管理不适合用规则引擎的场景✅ 业务规则非常稳定几乎不变✅ 规则逻辑极其复杂难以配置✅ 对性能要求极高微秒级响应✅ 规则逻辑涉及复杂的计算六、常见问题Q1规则引擎和AI有什么区别A规则引擎基于预定义的规则执行判断AI基于数据和算法学习模式区别规则引擎是人工制定规则AI是自动学习规则Q2规则引擎和脚本有什么区别A规则引擎声明式配置界面化操作脚本编码式逻辑需要编程区别规则引擎更业务友好脚本更灵活Q3规则引擎的性能如何A大多数规则引擎的性能都很好毫秒级到秒级响应影响性能的是规则数量、数据量、算法复杂度Q4规则引擎好学吗A规则引擎的配置类Excel很好学懂业务的人培训半天就能上手不需要编程基础七、总结回到最初的问题规则引擎到底是什么用一句话说规则引擎就是一个把判断规则从人脑搬到电脑的工具。核心价值业务与技术解耦业务人员可自主配置规则变更即时生效降低维护成本工作原理定义规则界面化配置加载数据从数据库、API等执行规则推理引擎输出结果通过/拒绝等适用场景金融风控营销系统计息系统权限管理等等...写在最后规则引擎这东西说复杂也复杂说简单也简单。复杂的是它的底层实现和算法简单的是它的使用方式。对于业务人员和技术人员来说规则引擎都是一个很有价值的工具。它让业务人员能够自主配置规则让技术人员能够专注于核心技术大家各司其职效率更高。如果你也在考虑要不要用规则引擎我的建议是先明确你的需求规则是否经常变化评估一下成本人员、时间、金钱试用一下主流的规则引擎比如JVS-Rules看看效果再决定希望这篇文章能帮你搞懂规则引擎。如果还有疑问欢迎交流
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2422389.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!