背景

什么是规则引擎?

规则引擎可以帮助企业将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务规则。这使得企业可以更灵活地管理和修改业务规则,而无需修改应用程序代码。

规则引擎可以接受数据输入,并根据业务规则解释数据,做出业务决策。这些业务决策可以是自动的,也可以是人工干预的。

规则引擎通常包含如下几个部分:

  • 规则库 :规则库包含了所有可用的规则。这些规则可以是预先定义好的,也可以是动态生成的。
  • 策略 :用于管理规则,是对规则的条件组装,如评分卡策略、最坏匹配策略等。
  • 规则执行引擎 :负责规则的执行。读取规则库中所有可用规则,根据规则的条件执行规则。
  • 为什么需要规则引擎?

    规则引擎可以帮助企业更有效的管理和执行业务规则,提高决策的质量、效率和可靠性。

    特点如下:

  • 将业务决策从代码中剥离出来 :运营人员可以更灵活有效的管理和修改业务规则,而无需修改业务代码,节省对抗时间
  • 提高决策质量 :规则引擎按照业务规则自动做出决策,无需依赖人为干预
  • 提效 :规则配置好后,可永久自动执行,减少人力消耗
  • 稳定性 :减少发版,减少测试,减少人为错误
  • 设计实现

    技术选型

    在选择规则引擎时,需要考虑如下几点:

  • 业务需求 :应该根据企业的业务需求来选择规则引擎。如果企业需要快速执行大量规则,则应选择性能较高的规则引擎。
  • 技术平台 :选择与企业现有技术平台相兼容的规则引擎。如果企业使用的是 Java 技术平台,则应选择支持 Java 的规则引擎。
  • 成本 :考虑规则引擎的购买成本、实施成本和运行成本。 是否开源 也是很多技术团队的选择因素。
  • 可维护性 :选择易于维护的规则引擎,在需要时能够快速修改和更新规则。
  • 市场占有率 :选择市场占有率较高的规则引擎,在需要时能够获得较好的技术支持和培训。
  • 技术支持 :选择提供较好技术支持的规则引擎,以便在使用过程中能够得到及时的帮助。
  • 当然,如果人力足够,可以考虑自己实现规则引擎亦可,自实现版本的规则引擎肯定灵活性更高,但是在性能和稳定性上需要较长时间的验证和考验。

    如下是市场上热门的 开源 规则引擎:

    JBoss Drools JBoss Drools 是一款开源的规则引擎,支持 Java 和其他语言。 OpenRules OpenRules 是一款开源的规则引擎,支持 Java 和其他语言。 Hippo Rules Engine Hippo Rules Engine 是一款开源的规则引擎,支持 Java 和其他语言 Apache Flink Apache Flink 是一款开源的流处理框架,也可以用作规则引擎 Easy Rules Easy Rules 是一个基于 Java 的开源规则引擎框架,它提供了简单易用的 API,使得开发人员可以轻松地使用规则引擎。 基于 Groovy 实现规则引擎 Groovy 是一种动态语言,可以运行在 Java 平台上。由于 Groovy 的语法简单,因此可以通过使用 Groovy 来实现规则引擎。

    规则引擎术语