分享好友 最新动态首页 最新动态分类 切换频道
规则引擎介绍与使用:Drools、Aviator、QLExpress、EasyRules、URule
2024-12-27 10:26

1.1 什么是规则引擎

        规则引擎是一种嵌入在应用程序中的组件,它实现了将业务决策从应用程序代码中分离出来的功能,并使用预定义的语义模块来编写和执行这些业务决策。       

        规则引擎通常包括一个规则库,其中存储了以某种形式(如脚本、XML文件等)定义的业务规则。当应用程序需要做出决策时,它会将相关数据发送给规则引擎。规则引擎会遍历规则库中的规则,根据数据输入和规则的逻辑进行匹配和评估,最终产生决策结果并返回给应用程序。

1.2 规则引擎特点

  • 特点
    1. 业务与代码分离:规则引擎将业务规则与应用程序代码分离,使得业务规则的修改无需修改代码,降低了维护成本。
    2. 灵活性:支持动态修改规则,以适应业务变化的需求。
    3. 可重用性:规则可以跨多个应用程序和场景重复使用,提高了开发效率。
    4. 可视化设计:许多规则引擎提供了可视化设计器,允许非技术人员通过图形界面来定义和修改规则。
  • 优势
    1. 提高应用程序的灵活性:业务规则的变更不再需要修改和重新部署应用程序代码。
    2. 降低维护成本:业务人员和开发人员可以分工合作,业务人员负责规则的定义和修改,开发人员负责应用程序的开发和维护。
    3. 支持复杂业务逻辑:规则引擎可以处理复杂的业务逻辑和条件判断,提高决策的准确性和效率。

Drools、Aviator、QLExpress、EasyRules、URule是五种不同的规则引擎,它们各自具有不同的特点和优势

  • Drools:用Java语言编写的开源规则引擎,基于Rete算法实现,功能强大且易于集成到Java应用中。
  • Aviator:阿里开源的高性能、轻量级表达式求值引擎,支持运算符重载和多种数据类型。
  • QLExpress:由阿里电商业务驱动的动态脚本引擎解析工具,支持复杂的业务逻辑计算和表达式计算。
  • EasyRules:轻量级的Java规则引擎,提供简单而强大的API来定义和执行规则。
  • URule:一款功能全面的规则引擎,支持可视化配置和复杂的业务规则管理。

2.1 Drools

基本信息

  • 类型:开源业务规则引擎
  • 语言:Java
  • 特点:基于Charles Forgy的RETE算法,具有易于访问企业策略、易于调整以及易于管理的特点。Drools将业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或数据库中,便于业务规则的变更和管理。
  • 应用场景:广泛应用于企业级的业务规则管理和决策支持系统。

优势

  • 功能强大,支持复杂的业务规则表达和推理。
  • 易于与Java应用集成,适合企业级应用开发。
  • 社区活跃,有丰富的文档和案例可供参考。

使用案例

  • 添加Drools 依赖
 
  • 创建 Drools 规则文件

    • 在  中配置你的 KModule

    • 在  下创建一个新的目录 ,并在其中添加你的  规则文件,例如 

 

  • 创建 java实体类

 
  • 测试
 

2. Aviator

基本信息

  • 类型:轻量级脚本语言
  • 语言:基于JVM
  • 特点:Aviator是一门高性能、轻量级的脚本语言,专为Java平台设计。它支持数字、字符串、正则表达式、布尔值等基本类型,并且可以使用所有Java运算符进行运算。Aviator还提供了内置的bigint和decimal类型,用于处理超大整数和高精度运算。
  • 应用场景:适用于规则判断、公式计算、动态脚本控制等多种场景。

优势

  • 语法简洁,易于学习和使用。
  • 性能优越,支持ASM模式直接将脚本翻译成JVM字节码。
  • 扩展性强,可以方便地调用Java方法和库。

使用案例

        Aviator适用于各种需要动态表达式求值的场景,如公式计算、数据处理转换、工作流逻辑判定、规则判断及规则引擎等。

  •  添加 Aviator 依赖
 
  • Aviator demo

 

3. QLExpress

基本信息

  • 类型:弱类型脚本语言
  • 语言:基于JVM
  • 特点:QLExpress是一个轻量级的规则引擎,支持弱类型脚本语言。它具有线程安全、高效执行、安全控制等特点。QLExpress的脚本编译过程可以缓存在本地机器,提高了执行效率。
  • 应用场景:广泛应用于电商业务场景,支持复杂的业务逻辑判断和表达式计算。

优势

  • 编译过程轻量化和灵活。
  • 运行时通过threadLocal保证线程安全。
  • 脚本编译结果可缓存,提升执行效率。

使用案例

  •  添加QLExpress依赖
 
  • 使用案例

 

4. EasyRules

基本信息

  • 类型:轻量级Java规则引擎
  • 语言:Java
  • 特点:EasyRules是一个简单而强大的Java规则引擎,提供了轻量级框架和易于学习的API。它基于POJO的开发与注解的编程模型,支持从简单规则创建组合规则的能力。
  • 应用场景:适用于需要简单规则管理和执行的应用场景。

优势

  • 易于学习和使用。
  • 支持组合规则和表达式语言。
  • 基于注解的编程模型降低了开发难度。

5. URule

基本信息(由于信息较少,以下部分基于通用理解和规则引擎的一般特点

  • 类型:开源规则引擎
  • 语言:Java
  • 特点:URule是一个功能全面的规则引擎,通过界面配置实现规则管理。它可能支持多种业务场景下的规则定义和执行,提供了灵活的配置选项和强大的规则管理能力。
  • 应用场景:适用于需要复杂规则管理和配置的应用场景。
最新文章
私域roi分析,告诉你怎么样的私域才能是合格的私域
市场营销获客工具【爱短链】全域跳转工具,打通私域引流关键一步:轻松将公域流量,引导至私域,通过链接点击直达,方便快捷,无风险提示跳转,助力企业/商家高速获客。》》点此获取链接我们关心如何如何来,如何保留,如何转化;也关心成
神经网络轻量化及硬件加速技术与应用
报告地点:吉林大学中心校区唐敖庆楼B521报告介绍1.神经网络轻量化及硬件加速技术与应用报告人简介姚美宝,吉林大学人工智能学院副教授,博士生导师,担任智能机器人实验室负责人。从事智能机器人,计算机视觉,控制理论及应用等研究,主要
谈谈“推荐系统”和“搜索引擎”两者间的关系、和异同点
原标题:产品经理需要了解:推荐系统和搜索引擎的关系注:本文作者结合自己的实践经验来为大家阐述推荐系统和搜索引擎两者之间的关系、分享自己的体会。从信息获取的角度来看,搜索和推荐是用户获取信息的两种主要手段。无论在互联网上,还
阿亮网创72计第2计:0基础1小时精通SEO,免费流量取之不尽(价值20万)
第2计:0基础1小时精通SEO,免费流量取之不尽(价值20万)在网赚圈有一个绝对真理:流量就等于钱,精准流量就等于很多钱。如何才能在完全免费的情况下, 源源不断的获取海量的精准流量? 纵观整个互联网,唯独seo能够做到。什么是seo?seo就
谷歌SEO优化时,为何internal page会替代home page显示?
在SEO的浩瀚世界里,每一个细节都关乎网站的生死存亡。我曾无数次深入探索,试图揭开谷歌搜索引擎的神秘面纱。今天,我想和大家聊聊一个有趣且至关重要的现象:在谷歌SEO优化过程中,为何internal page(内页)有时会替代home page(首页)
百度关键词优化软件排名,哪款工具更高效提升搜索排名?
在当下这个信息爆炸的时代,搜索引擎优化(SEO)成为了众多网站和企业在网络世界中立足的关键。而百度,作为中国最大的搜索引擎,其关键词优化更是众多网络营销策略中的重中之重。基于我多年的实战经验和对行业的深刻理解,我发现选择合适
第六章(项目进度管理)
项目进度管理包括为管理项目按时完成所需的各个过程。 项目进度计划(Schedule)说明了项目如何以及何时交付项目范围中定义的产品、服务 和成果。创建 WBS 最底层得到的是工作包,但是为了更好的估算活动持续时间和活动
QQ群排名引流的两种方式,适合各类粉丝
QQ群大家都不陌生,可以说是在微信群之前最火的了。虽然说现在它的热度已经没有那么高了,但是并不影响我们利用它进行引流操作。虽然本篇文章的标题写的是群排名引流,不过我今天分享的是QQ群的两种引流方式。方式一相信大家也碰到过,不管
系统还原不能用怎么办?联想笔记本自动修复无法进入系统
联想 Lenovo ideapad 700-15ISK 笔记本电脑 ,windows补丁强制更新升级后,出现 “正在准备自动修复”【如图1】,诸位可能还有别的问题,不一而足,我自己的电脑是还有 “我们正在安装一个系统更新,请稍后”【如图2】,电脑会一直重复循环
骗子酒馆正版
骗子酒馆是一款以PC端游《骗子酒馆》为主题的自制策略RPG游戏。在游戏中,玩家将扮演一位酒馆里的牌局参与者,与三位伙伴同桌博弈,目标是成为最终存活的赢家。游戏提供四种牌型,包括K、Q、A和小丑牌,每局开始时系统会随机翻出一张底牌,
相关文章
推荐文章
发表评论
0评