规则链概述
规则链是 RuleGo 的核心概念,它是由多个规则节点组成的有向无环图,每个规则节点都是一个组件,可以实现不同的业务逻辑,节点与节点通过关系类型(relation type)进行连接。规则链可以动态配置和修改,支持嵌套和编排,实现复杂的业务流程。 规则链主要包含以下几个概念:
- 规则链: 是规则节点及其关系的逻辑组合,它定义了一个完整的业务流程。规则链可以接收来自不同数据源的消息,并根据规则节点的类型和配置,将消息发送到下一个或多个连接的规则节点。规则链可以嵌套和编排,实现复杂和灵活的业务逻辑。
- 消息: 传入规则链的输入和输出数据或者事件,它允许被节点组件转换、过滤和分发。消息包含了消息负荷、元数据和类型。消息负荷可以是任意的数据。消息的元数据可以包含一些额外的信息,如目标的基础信息等。消息的类型可以用于区分不同的事件类型。
- 规则节点: 规则链的基本组件,它是一个实现了特定业务逻辑的函数。规则节点可以对传入的消息进行过滤、转换、丰富或执行某些动作。规则节点可以通过配置参数来调整其行为和输出。
- Relation Type: 节点与节点连接的关系类型,决定消息在规则链的路径选择。不同组件提供不同的路径连接关系,一般来讲:
- filter类组件提供的关系有:True/False/Failure;
- action类组件提供关系有:Success/Failure;
- 路由类组件则可以通过脚本动态控制路由或者根据msgType实现更加复杂的关系路由,例如:脚本路由、msgType路由等。
# RuleGo 规则链优势
相对于传统规则引擎,RuleGo 采用了一种全新的规则引擎模式,即基于规则链的可编排组件式规则引擎。它有以下特点:
- 简单性:使用 JSON 来配置规则链,无需使用任何专门的规则语言或 DSL,只需要使用常见的数据结构和语法,就可以轻松地定义和修改规则链。
- 高效性:使用有向无环图来表示规则链,每个输入消息只需要沿着图中的路径进行处理,无需匹配所有的规则,这大大提高了消息处理的效率和速度,也节省了资源和时间。
- 灵活性:支持动态配置和修改规则链,无需重启应用程序或重新加载规则,就可以实时地更新和应用规则链,这非常适合业务的快速变化和迭代。
# 规则链支持的运行方式
- 串行模式
- 并行模式
- 并行+串行模式(嵌套子规则链方式)
- 混合模式
- 嵌套子规则链模式
6.子规则链多层嵌套模式
在 GitHub 上编辑此页 (opens new window)
上次更新: 2024/10/31, 11:56:12