规则引擎Aviator实践分享

   日期:2024-12-27     作者:o93v3      
核心提示:名称场景核心技术优点缺点应用案例难度Drools1、业务代码和业务规则分离 2、适用于大型应用系统模式匹配:Rate OO 算法 1

名称

场景

核心技术

规则引擎Aviator实践分享

优点

缺点

应用案例

难度

Drools

1、业务代码和业务规则分离

2、适用于大型应用系统

模式匹配:Rate OO 算法

1、将初始数据(fact)输入Working Memory。

2、使用Pattern Matcher比较规则(rule)和数据(fact)。

3、如果执行规则存在冲突(conflict,即同时激活了多个规则,将冲突的规则放入冲突集合。

4、解决冲突,将激活的规则按顺序放入Agenda。

5、使用规则引擎执行Agenda中的规则。重复步骤2至5,直到执行完毕所有Agenda中的规则。

1、功能完善

2、具有监控

3、操作平台等功能

4、支持DMN

5、文档完善

1、学习成本高

2、比较重,复杂度高

3、独立系统很难进行二次开发

4、以内存实现时间窗功能,无法支持较长跨度的时间窗

5、不二次开发很难融入京东技术生态

携程

🌟🌟🌟🌟🌟

EasyRules

1、业务代码和业务规则分离

2、适用于大型应用系统

表达式语言(MVEL/SpEL

1、使用MVEL表达式模式开发时,可以直接编写java代码直接编译执行,更好的支持扩展

2、使用SpEL,模式时可以进行yml文件编写,更好支持脚本模式开发,yml格式文件更加易读

1、 轻量

2、 易学

3、支持复合规则

4、定义规则方式多样

5、支持复杂业务场景

6、可集成至京东技术生态

1、不支持DMN

2、活跃度较低

3、文档较少

Apache Nifi

🌟🌟🌟

Aviator

1、各种表达式的动态求值

Aviator会将表达是编程字节码,交给JVM去执行。 AviatorEvaluator(执行器)支持两种模式进行表达式执行: 1、以执行速度优先: AviatorEvaluator.setOptimize(AviatorEvaluator.EVAL); 2、编译速度优先,这样不会做编译优化: AviatorEvaluator.setOptimize(AviatorEvaluator.COMPILE); AviatorEvaluator在执行表达式执行结果,可以进行对表达式缓存,使用了LRU算法,进行缓存淘汰。

1、轻量级

2、高性能

3、文档完善

4、社区活跃

5、可扩展

6、易学

7、可集成至京东技术生态

1、不支持DMN

2、支持业务场景较简单

美团酒旅实时数据规则引擎

🌟🌟

URule

1、业务代码和业务规则分离

2、适用于大型应用系统

1、应用Rete算法做为核心算法,生成可视化Rete树,规则文件校验,模型版本控制

2、使用JSR 170进行规则内容存储管理

1、功能完善

2、支持规则集,决策树,决策表

3、文档完备(有视频教程

4、易集成

5、易改造

1、社区不活跃

2、应用案例较少

3、源码应用技术栈相对落后

中小公司

     本文地址:http://w.yusign.com/tjnews/3336.html    述古往 http://w.yusign.com/static/ , 查看更多
 
标签: 规则
特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

举报收藏 0打赏 0
 
更多>同类生活信息

相关文章
最新文章
推荐文章
推荐图文
生活信息
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号