Easy Rules

规则引擎大比拼 Drools VS Easy-rules VS RuleBook

早过忘川 提交于 2020-12-14 19:23:35
在规则引擎市场上,存在着不少的开源规则引擎,这些规则引擎也有很多公司在用,然而却没有找到一篇对这些规则引擎进行比较的文章。于是乎,在网上检索了些资料,以下内容可作为规则引擎选型的一个参考报告。 Drools Easy Rules Rule Book 简介 可以执行复杂事件处理的规则引擎 简单轻量级的规则引擎 支持Lambda的轻量级规则引擎 流行度 8.7 ★★★★★ 8.0 ★★★★ 5.1 ★★★ 活跃度 9.4 ❤❤❤❤❤ 7.5 ❤❤❤❤ 4.4 ❤❤❤ 代码质量 L1( Lumnify 统计 ) L5( Lumnify 统计 ) - 当前版本 7.47.0.Final V 4.1 V 0.12 版本支持 7.x 版本已持续多年 仅支持 4.1.x,老版本不支持更新 2018年5月发布V 0.11,V 0.12发布时间不详 编程语言 Java Java Java 算法 RETE算法 - - 本想在更多表达式支持等方面再进行比较的,但当我看到 Easy Rules仅支持 V 4.1 时就放弃了,V 4.0也才仅仅发布半年,你说不支持就不支持了,真是❤大的很。我知道搞开源这玩意不挣钱,但既然决定开源了,起码得有点奉献精神,自己没精力维护不要紧,其他人提个Bug修复的issue合并一下并不过分吧。 最后,关于Drools说一句,很多人觉得这个东西太重了,这个东西确实功能复杂

easy-rules spring boot starter 支持v4.0

拜拜、爱过 提交于 2020-08-08 16:51:39
最近几天easy-rules发布了4.0 变动还是挺多的(api,以及核心),对于原有spring boot starter 的一些修改 以支持4.0 ,以下是一个说明 参考代码地址 https://github.com/rongfengliang/easy-rules-spring-boot-starer 使用说明 具体的使用没有变动,只是新版本api 的一些变动(spel 变动有点大,但是还好,后边格式就统一了,升级只需要修改的主要是格式) maven 引用 repo < repository > < id > ossrh < /id> < url > https: //oss.sonatype.org/content/repositories/snapshots</url> < /repository> 引用 < dependency > < groupId > com. github. rongfengliang < /groupId> < artifactId > easy - rules - spring - boot - starter < /artifactId> < version > 2.0 - SNAPSHOT < /version> < /dependency> spring boot 配置 easyrules: skipOnFirstAppliedRule

一种基于特性开关以及规则的软件开发模式

人走茶凉 提交于 2020-04-20 09:08:56
以下是一些简单的思考 一般开发模式 参考图 说明 我们提供多种api 实例,通过强大的规则以及路由能力提供api 以及数据的处理 基于rule 模式的 参考图 说明 将业务处理使用rule 解耦,同时提供了多实例的副本,其中rule 可以加入审计以及可视化展示,注意此图没有使用特性开关 对于复杂的处理我们还是需要依赖强大的路由能力解决(当然可以解决我们大部分的复杂业务问题) 基于rule+ Feature Flags 参考图 说明 api 的版本都是一致的,对于复杂业务处理基于rule,同时包含了审计以及dashboard,同样还是利用了强大的路由能力。 好处:版本一致,可以全局灵活的调整业务api以及功能的处理,对于复杂业务基于rule处理增强了业务的处理 说明 一些实践,特性开关不同语言的实现还是比较多的,java 的ff4j是一个不错的选择,java 的easy-rules 是一个简单、灵活的规则 引擎(drools 也是不错的) 来源: oschina 链接: https://my.oschina.net/u/4384923/blog/3275768

规则引擎 Easy Rules 使用实例(二)

梦想与她 提交于 2020-02-26 18:07:00
在上一篇文章中创建规则引擎时,用的是如下语句: RulesEngineParameters parameters = new RulesEngineParameters ( ) . skipOnFirstAppliedRule ( true ) ; RulesEngine fizzBuzzEngine = new DefaultRulesEngine ( parameters ) ; 这里为规则引擎设置了一个属性skipOnFirstAppliedRule,除了这一个属性之外,规则引擎还有另外三个属性,也就是说它一共有四个属性,即 rulePriorityThreshold、skipOnFirstAppliedRule、skipOnFirstFailedRule 和 skipOnFirstNonTriggeredRule。其中 skipOnFirstFailedRule 属性平时用到的比较少,因此我们这里不再赘述。下面我们通过实例来演示一下其他三个属性的作用。 一、使用实例 假设我们有这样一个场景: (1)如果一个数字可以被 3 整除,则输出“three”; (2)如果一个数字在不满足上面条件的情况下可以被 5 整除,则输出“five”; (3)如果一个数字在均不满足上面两个条件的情况下可以被 7 整除,则输出“seven”; (4)如果一个数字均不满足上述条件,则输出该数字本身。

规则引擎 Easy Rules 使用实例(一)

那年仲夏 提交于 2020-02-26 16:35:53
< dependency > < groupId > org.jeasy </ groupId > < artifactId > easy-rules-core </ artifactId > < version > 3.2.0 </ version > </ dependency > < dependency > < groupId > org.jeasy </ groupId > < artifactId > easy-rules-support </ artifactId > < version > 3.2.0 </ version > </ dependency > < dependency > < groupId > org.jeasy </ groupId > < artifactId > easy-rules-mvel </ artifactId > < version > 3.2.0 </ version > </ dependency > 一、使用场景 在编写代码过程中,我们对于if...else...语句是相当的熟悉了。但是如果条件分支比较多,比如有十几个、几十个、上百个,甚至更多时,如果我们还坚持在业务逻辑代码中使用if...else...语句,那么这个文件中的代码显得十分不协调,并且如果我们以后想再增加或减少规则时,还要来到这块业务逻辑代码中去修改if..

1、常用规则引擎、java规则引擎的标准。

故事扮演 提交于 2019-12-07 16:31:14
一、概述。JSR94标准 在本文中,我们将介绍一些最流行的Java规则引擎。 在应用程序中,业务规则很复杂(比如:优惠券的使用规则)。如果用源代码实现这些规则,很繁琐。通过规则引擎将业务逻辑与源代码分离,可以简化开发和维护。 在Java世界中,大多数规则引擎库都实现了称为 Java Rule API Engine 的 JSR94标准。 二、常用的规则引擎。 1、Drools Drools的官网: https://www.drools.org/ Drools是业务规则管理系统(BRMS)解决方案。Drools可以与jBPM集成,jBPM是一个业务流程管理工具,用于流程,事件活动,任务等的标准化。 如果你想阅读更多内容,可以 在这里 找到Drools的介绍,以及一篇关于 与Spring集成 的文章。 2、OpenL Tablets 官网: http://openl-tablets.org/ OpenL Tablets是一个业务规则管理系统和一个基于Excel决策表的业务规则引擎。由于此框架使用的表格格式对业务用户来说很熟悉,因此它弥合了业务用户和开发人员之间的差距。 3. Easy Rules 官网: http://www.jeasy.org/ Easy Rules是一个简单的Java规则引擎,提供轻量级和基于POJO的框架来定义业务。它可以通过使用复合模式从原始规则创建复杂规则。

规则引擎及easyrules机制分析

て烟熏妆下的殇ゞ 提交于 2019-12-06 18:08:58
一、什么是规则引擎 最近在工作中,遇到一类上层业务规则多变的场景。所以研究了规则引擎相关的内容,在这里可以与大家一起探讨。规则引擎相关的概念和相关业内使用,可以参考以下两篇文章,分析的很到位,也指出了大体的方向和具体的实践: 《规则引擎概述》 https://blog.csdn.net/express_wind/article/details/77141674 《从0到1:构建强大且易用的规则引擎》 https://tech.meituan.com/maze_framework.html 二、规则引擎实践 规则引擎的实现有比较多的开源组件,比较出名的是Drools,属于重量级的实现。本文主要介绍一款轻量级的规则引擎实现:easyrules 1、什么是EasyRules? 首先EasyRule是一个规则引擎.这个名字由来是受到了 Martin Fowler 的文章 Should I use a Rules Engine You can build a simple rules engine yourself. All you need is to create a bunch of objects with conditions and actions, store them in a collection, and run through them to evaluate the