规则引擎专题---2、开源规则引擎对比

这篇具有很好参考价值的文章主要介绍了规则引擎专题---2、开源规则引擎对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

开源规则引擎

开源的规则引擎整体分为下面几类:

  • 通过界面配置的成熟规则引擎,这种规则引擎相对来说就比较重,但功能全,比较出名的有:drools, urule。

  • 基于jvm脚本语言,互联网公司会觉得drools太重了,然后会基于一些jvm的脚本语言自己开发一个轻量级的规则引擎,比较出名的有,groovy(开源风控radar),aviator,qlexpress。

  • 基于java代码的规则引擎:基于jvm脚本语言会有一些语法学习的成本,所以就有基于java代码去做的规则引擎,比如通过一些注解实现抽象的方式去做到规则的扩展,比较出名的有: easy rules。

这边重点介绍三款产品drools、qlexpress和groovy,先介绍下基础能力和优劣势,后面再进行详解。

Drools

drools是一款由JBoss组织提供的基于Java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(例如存放在数据库中),使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效。

drools官网地址:https://drools.org/

drools源码下载地址:https://github.com/kiegroup/drools

在项目中使用drools时,即可以单独使用也可以整合spring使用。如果单独使用只需要导入如下maven坐标即可:

<dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-compiler</artifactId>
    <version>7.6.0.Final</version>
</dependency>

如果我们使用IDEA开发drools应用,IDEA中已经集成了drools插件。如果使用eclipse开发drools应用还需要单独安装drools插件。

drools API开发步骤如下:

规则引擎开源组件,规则引擎专题,规则引擎,drools,groovy,规则引擎对比,qlexpress

Groovy

Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。

Groovy是从Java衍生出来的,并且运行在Java虚拟机上的语言.其目标是不管作为脚本语言,还是编程语言,都可以简单、直接使用。Groovy 也并不会替代 Java,而是相辅相成、互补的关系,具体使用哪门语言这取决于要解决的问题和使用的场景。
规则引擎开源组件,规则引擎专题,规则引擎,drools,groovy,规则引擎对比,qlexpress

QLExpression

由阿里的电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等强需求而设计的一门动态脚本引擎解析工具。
在阿里集团有很强的影响力,同时为了自身不断优化、发扬开源贡献精神,于2012年开源。

QLExpress脚本引擎被广泛应用在阿里的电商业务场景,具有以下的一些特性:

1、线程安全,引擎运算过程中的产生的临时变量都是threadlocal类型。
2、高效执行,比较耗时的脚本编译过程可以缓存在本地机器,运行时的临时变量创建采用了缓冲池的技术,和groovy性能相当。
3、弱类型脚本语言,和groovy,javascript语法类似,虽然比强类型脚本语言要慢一些,但是使业务的灵活度大大增强。
4、安全控制,可以通过设置相关运行参数,预防死循环、高危系统api调用等情况。
5、代码精简,依赖最小,250k的jar包适合所有java的运行环境,在android系统的低端pos机也得到广泛运用。

规则引擎对比

常见能力对比如下:

规则引擎 QLExpression (ms) groovy(ms) drools(ms)
动态规则 支持 支持 支持
灵活性
复杂度
上手
使用广度

执行性能对比如下:

执行次数\规则引擎 QLExpression (ms) groovy(ms) drools(ms)
100w 1590 171 364
1000w 12551 709 3530
5000w 60230 3516 19414

三种规则引擎都支持动态规则,可以通过提供的api动态扩展规则文章来源地址https://www.toymoban.com/news/detail-767551.html

  • 灵活性上看groovy和drools支持脚本编写方式,市面上有常见的包装方案;
  • 其中QLExpression在中小企业应用较广泛对熟悉java的选手来说基本开箱即用;
  • groovy和drools作为规则引擎在互联网企业应用较多,有一定的学习和培训成本;
  • drools追随者更多适用面积更广泛;

到了这里,关于规则引擎专题---2、开源规则引擎对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中轻量级规则引擎Groovy介绍

    假如在开发一个充值功能,需要支持经常变化的充值营销活动,产品提出了以下需求: 1、根据不同季节,不同节日做不同的充值送活动,以及不定期的优惠活动。 2、还需要根据用户的等级以及用户以往的充值历史做不同的营销活动。 3、能够灵活的配置营销活动 需求很简单

    2024年02月10日
    浏览(74)
  • 开源游戏引擎和模拟器的项目合集 | 开源专题 No.38

    Stars: 26.2k License: GPL-3.0 yuzu是一款全球最受欢迎的开源Nintendo Switch模拟器,由Citra创建者编写。它采用C++语言编写,并具有可移植性,在Windows和Linux上进行积极维护。该模拟器能够全速运行大多数商业游戏,只要您满足其兼容性要求即可。yuzu支持许多不同类型的游戏,并且可以

    2024年02月08日
    浏览(44)
  • OLAP开源引擎对比之历史概述

    OLAP概念诞生于1993年,工具则出现在更早以前,有史可查的第一款OLAP工具是1975年问世的Express,后来走进千家万户的Excel也可归为此类,所以虽然很多数据人可能没听过OLAP,但完全没打过交道的应该很少。 这个概念主要是在大数据圈里流传,而在大数据领域里,目前主流的

    2024年04月27日
    浏览(35)
  • 开源 UI 组件库和开发工具库概览 | 开源专题 No.59

    Stars: 87.9k License: MIT Ant Design 是一个企业级 UI 设计语言和 React UI 库。 为 Web 应用程序设计的企业级 UI。 提供一套高质量的开箱即用的 React 组件。 使用可预测静态类型编写 TypeScript 代码。 包含完整的设计资源和开发工具包。 支持数十种语言国际化支持 基于 CSS-in-JS 实现强大

    2024年01月16日
    浏览(38)
  • 【干货】开源OLAP引擎(ClickHouse、Doris、Presto、ByConity)性能对比分析

    随着数据量和数据复杂性的不断增加,越来越多的企业开始使用OLAP(联机分析处理)引擎来处理大规模数据并提供即时分析结果。在选择OLAP引擎时,性能是一个非常重要的因素。 目录 / 基础查询场景下 / / 连接查询场景 / / 聚合查询场景 /

    2024年02月12日
    浏览(60)
  • java脚本引擎Groovy实战

    目录 一、场景描述 二、javascript语法引擎 JavaScriptEngine getEngineByName eval NashornScriptEngine 三、Groovy语法引擎 一.使用GroovyClassLoader 二、原理  三、调用groovy脚本实现方式 1.使用GroovyClassLoader 2.使用ScriptEngine 3.使用GroovyShell 四、性能优化  五、解决方案 四、项目实战  一、概述 二

    2024年02月07日
    浏览(38)
  • 【原理图专题】OrCAD Capture 设计规则(DRC)检查

    在原理图设计完成后,需要进行DRC检查,DRC检查能协助工程师快速检查原理图的物理、电气规则是否正确,能快速定位错误和原因。 DRC 检查从Capture 工具栏中如下图红框所示的图标中Design Rules Check进入 进入后将打开DRC窗口,有四个选项卡。分别是Design Rules Options、Electrical

    2023年04月22日
    浏览(82)
  • Java动态脚本&规则引擎、计算/表达式引擎

    在日常的Java项目中,我们免不了会遇到这样的需求: 动态地获取并运行自定义脚本文件,以实现特定的功能 对数据流执行用户自定义的数据有效性、公式计算、数据处理ETL(如数据截取、拼接)等不同业务逻辑 对用户输入的代码或脚本文件进行测试、运行,确保其语法正确

    2023年04月27日
    浏览(40)
  • 【PCB专题】如何在嘉立创8月1日起的新规则下免费打样

            嘉立创规则22.8.1号免费打样开始规则变更了,那要怎么办呢?规格变更说明的链接: PCB免费打样规则变更正式实施,新增6层免费! - 哔哩哔哩 信守承诺,不玩套路,2021年7月1日嘉立创发布PCB免费打样活动,并且承诺以年为单位执行。2022年7月1日时满一年,公司本

    2023年04月16日
    浏览(56)
  • Java中的规则引擎

    Java 中的 规则 引擎为我们提供了一个以灵活且定义的方式管理和执行业务规则的框架 。这些引擎使开发人员能够在不更改核心应用程序的情况下更轻松地修改和理解规则,从而将业务逻辑与应用程序代码分开。 规则引擎旨在评估条件并根据指定规则触发操作 。它们还为我们

    2024年04月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包