drools 初涉

规则引擎 

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。

大多数规则引擎都支持规则的次序和规则冲突检验,支持简单脚本语言的规则实现,支持通用开发语言的嵌入开发。目前业内有多个规则引擎可供使用,其中包括商业和开放源码选择。开源的代表是Drools,商业的代表是VisualRules ,iLog。

 

Drools是Java编写的一款开源规则引擎,实现了Rete算法对所编写的规则求值,支持声明方式表达业务逻辑。使用DSL(Domain Specific Language)语言来编写业务规则,使得规则通俗易懂,便于学习理解。支持两种方式

  1.嵌入式:嵌入到项目内。

  2.分离式:通过workbench kie 部署服务  远程提交执行规则。

本次主要以嵌入式方式与项目结合进行工作。

应用场景

  初接触 与if else 差不多,规则配置也会混乱,嵌套多层,需要相应的规范。使用业务场景:

1.规则较多的

2.规则时常变更:添加、修改、删除

3.期望运营人员通过简单模板配置

4.能快速热更新的

 

例如常见的电商促销规则,金融的风险控制,反欺诈,医疗的合理用药、物流仓储等。

初步接触  按 demo  https://github.com/ityouknow/drools-examples 

                       文档  https://docs.jboss.org/drools/release/7.28.0.Final/drools-docs/html_single/index.html

                      也可下载 https://download.csdn.net/download/langzhilongxing/11907458

进行测试试用。

总结下试用记录

1.agenda-group ,kiesession 通过 agenda-group  调用

ksession.getAgenda().getAgendaGroup("jc-group").setFocus();

还是会调到没设置agenda-group 的规则,且 调用过

ksession.fireAllRules();

后就不在focus到 jc-group

2.query 是支持父类查找的,在规则里建多个子类,可以通过父类,一次都查询出来

3.规则的定义需要一定规范,写在同个文件,定义agenda-group ,如果多重嵌套触发规则也会比较混乱

4.  最后需要执行

ksession.dispose();

释放资源。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值