【Drools】值得打工人学习的规则引擎Drools<一> |
您所在的位置:网站首页 › drools实际应用场景 › 【Drools】值得打工人学习的规则引擎Drools<一> |
本文主要对Drools的使用业务场景做简单介绍。 规则引擎规则引擎:全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。 需要注意的是规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。 目前市面上具体的规则引擎产品有:drools、VisualRules、iLog等。 规则引擎实现了将业务决策从应用程序代码中分离出来,接收数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎其实就是一个输入输出平台。 Drools介绍drools是一款由JBoss组织提供的基于Java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(例如存放在数据库中),使得业务规则的变更不需要修改项目代码、不用重启服务器就可以在线上环境立即生效。 drools官网地址:https://drools.org/ drools源码下载地址:https://github.com/kiegroup/drools 使用规则引擎能够解决什么问题? 针对复杂的业务规则代码处理,往往存在一下问题: 1、硬编码实现业务规则难以维护; 2、硬编码实现业务规则难以应对变化; 3、业务规则发生变化需要修改代码,重启服务后才能生效; 于是规则引擎Drools便诞生在项目中。。。 使用规则引擎的优势如下: 1、业务规则与系统代码分离,实现业务规则的集中管理 2、在不重启服务的情况下可随时对业务规则进行扩展和维护 3、可以动态修改业务规则,从而快速响应需求变更 4、规则引擎是相对独立的,只关心业务规则,使得业务分析人员也可以参与编辑、维护系统的业务规则 5、减少了硬编码业务规则的成本和风险 6、使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得的简单 构成drools规则引擎由以下三部分构成: Working Memory:工作内存,drools规则引擎会从Working Memory中获取数据并和规则文件中定义的规则进行模式匹配,所以我们开发的应用程序只需要将我们的数据插入到Working Memory中即可;Rule Base:规则库,我们在规则文件中定义的规则都会被加载到规则库中Inference Engine:推理引擎 其中Inference Engine(推理引擎)又包括:Pattern Matcher(匹配器): 具体匹配哪一个规则,由这个完成,将Rule Base中的所有规则与Working Memory中的Fact对象进行模式匹配,匹配成功的规则将被激活并放入Agenda中。Agenda(议程):用于存放通过匹配器进行模式匹配后被激活的规则。Execution Engine(执行引擎):执行Agenda中被激活的规则。Fact:事实,是指在drools 规则应用当中,**将一个普通的JavaBean插入到Working Memory后的对象就是Fact对象**,Fact对象是我们的应用和规则引擎进行数据交互的桥梁或通道。规则引擎执行过程 ![]() 目录结构: ![]() 整理的这份超全Java面试题包含: Java基础、Java异常、Spring、SpirngMVC、MyBatis、SpringBoot、SpringCloud、BIO、NIO、AIO、Netty、Tomcat、Redis、MySQL、Memcache、ElasticSearch、zookeeper、RabbitMQ、Vue、Dubbo、并发编程、Java虚拟机、TCP、Http、大数据、设计模式、Linux等 公众号Java专栏,后台回复【面试66】。即可获取! 或者点击下方超链接: 史上最全Java面试题,41个方向!一网打尽! ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |