RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • 快速入门

  • 规则链

    • 规则链概述
    • 规则链
    • 消息
      • Metadata 和 Data 区别
        • 1. 定义
        • 2. 用途
        • 3. 示例
    • 规则节点
    • Relation Type
  • 标准组件

  • 扩展组件

  • 自定义组件

  • 组件市场

  • 可视化

  • AOP

  • 触发器

  • 高级主题

  • RuleGo-Server

  • 问题

目录

消息

消息(RuleMsg)是传入规则链的输入和输出消息或者事件,它允许被节点组件转换、过滤和分发。消息在规则链中流转时会携带完整的上下文信息,包含以下字段:

  • Ts: 类型:int64,消息产生的时间戳,用于记录消息的生成时间
  • Id: 类型:string,消息的唯一标识符。同一条消息在规则引擎流转的整个生命周期中保持不变,用于追踪和关联消息
  • DataType: 类型:string,消息数据的格式类型,可选值:
    • JSON:JSON格式数据(默认),在脚本组件中会自动解析成对象,可直接操作JSON字段
    • TEXT:文本格式数据
    • BINARY:二进制格式数据
  • Type: 类型:string,消息类型。规则节点组件可以根据该字段进行消息路由和分发处理
  • Data: 类型:string,消息的实际内容/负载数据
  • Metadata: 类型:map[string]string,消息的元数据信息,用于存储消息的附加属性和上下文数据

消息在规则链的处理过程中,各个节点可以:

  • 对消息进行路由,决定消息流向下一个或多个节点
  • 修改和转换消息内容,包括数据内容、类型和格式
  • 基于消息内容增强数据,如查询数据库补充信息
  • 根据消息执行具体动作,如发送通知、调用API等

# Metadata 和 Data 区别

在RuleGo规则引擎中,消息的 metadata 和 data(也指消息的消息负荷)有以下区别:

# 1. 定义

  • metadata(元数据):是与消息相关的附加信息,以键值对的形式存在,它通常不包含消息的核心内容,而是用于描述消息的上下文、来源或其他辅助信息。例如,metadata 可能包含消息的来源设备类型、时间戳、用户属性、产品ID、设备类型等。
  • data(消息负载,payload):是消息的实际内容,通常是一个 JSON 格式的报文,包含了需要处理的核心数据。例如,传感器的温度、湿度等测量值。

# 2. 用途

  • metadata:
    • 用于提供消息的上下文信息,帮助规则引擎(或者处理节点)更好地理解和处理消息。
    • 可用于消息的路由、过滤和条件判断。例如,根据 metadata 中的设备类型或用户属性来决定消息的处理路径。
    • 可以在规则链中动态更新和扩展。
  • data:
    • 包含需要被处理或分析的核心数据。
    • 是规则引擎(或者处理节点)进行数据转换、计算和存储的主要对象。

# 3. 示例

假设有一个温度传感器的消息:

  • metadata:
    {
      "sensorType": "temperature",
      "deviceId": "sensor123",
      "timestamp": "2025-02-27T10:00:00Z"
    }
    
    1
    2
    3
    4
    5
  • data:
    {
      "temperature": 22.4
    }
    
    1
    2
    3

在这个例子中,metadata 描述了消息的来源和上下文,而 data 包含了实际的温度值。

在 GitHub 上编辑此页 (opens new window)
上次更新: 2025/03/31, 01:52:11
规则链
规则节点

← 规则链 规则节点→

Theme by Vdoing | Copyright © 2023-2025 RuleGo Team | Apache 2.0 License

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式