giip

MQE 详细规范指南 (技术用)

引导您了解 GIIP 消息队列引擎 (MQE) 的协议、数据结构及可靠性保证机制的技术详细规范。

🔔 前往消息队列配置 →

📋 概述

MQE (Message Queue Engine) 承担着 GIIP 生态系统神经网络的角色。它专为分布式代理与中央服务器之间的高性能、高可靠通信而设计,包含了即使在网络不稳定的情况下也能最大限度减少数据丢失的技术机制。

🛠️ 技术规格

1. 通信协议与端口

  • 主协议 (Primary Protocol): 基于 AMQP 0-9-1 (RabbitMQ) 或 AMQP 1.0 (Azure Service Bus)。
  • 端口: 5671(必须使用 TLS 加密通信)。
  • 备用方案 (Fallback): 支持基于 WebSocket 的 HTTPS (443) 通信,以应对防火墙环境。

2. 消息负载结构 (JSON)

所有消息均包含以下通用头部:

{
  "header": {
    "msgId": "UUID",
    "timestamp": "ISO8601",
    "originNode": "AgentID",
    "priority": "0-9"
  },
  "payload": {
    "type": "METRIC | ISSUE | COMMAND",
    "data": { ... }
  }
}

3. 可靠性与安全

  • 至少交付一次 (At-Least-Once Delivery): 在消费者完成消息处理并发送
    ACK
    之前,消息不会从队列中删除。
  • 端到端加密: 负载数据区域可在发送端使用 AES-256 进行加密传输。
  • 断路器 (Circuit Breaker): 当特定节点产生超额流量时自动拦截进入,以保护整个系统。

⚙️ 开发者注意事项

  • 代理开发: 若开发新代理,务必使用 MQE SDK 实现心跳 (Heartbeat) 及重连 (Reconnection) 逻辑。
  • 应对处理延迟: 若消费者端的处理速度变慢,会导致
    Queue Depth
    增加,请通过水平扩展 (Scale-out) 提高效率。

故障排除

症状原因解决
通过 5671 端口连接 MQE 失败防火墙拦截了 AMQP(5671) 端口切换至基于 WebSocket 的 HTTPS(443) 备用通信
同一条消息被重复处理At-Least-Once 交付特性会在
ACK
之前重发
在消费者端基于
msgId
实现幂等处理
Queue Depth
持续增加
消费者处理速度跟不上流入速度通过水平扩展 (Scale-out) 增设消费者
特定节点的消息流入被拦截超额流量触发了断路器 (Circuit Breaker)流量恢复正常后通过心跳/重连逻辑重新连接

版本: 1.0 最后更新: 2026-03-19 源文件:

giipv3/public/help/mqe-spec.zh-CN.md