MQE詳細仕様ガイド(技術用)
GIIPメッセージキューエンジン(MQE)のプロトコル、データ構造、および信頼性保証メカニズムに関する技術詳細仕様を案内します。
📋 概要
**MQE(Message Queue Engine)**は、GIIPエコシステムの神経網の役割を果たします。分散されたエージェントと中央サーバー間の高性能・高信頼性の通信のために設計されており、ネットワークの不安定な状況でもデータの紛失を最小限に抑える技術的な装置を含んでいます。
🛠️ 技術規格
1. 通信プロトコルおよびポート
- Primary Protocol: AMQP 0-9-1 (RabbitMQベース) または AMQP 1.0 (Azure Service Busベース)
- Port: 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を送信するまで、キューからメッセージを削除しません。 - End-to-End Encryption: ペイロードデータの領域は、発信時点でAES-256で暗号化されて送信されることがあります。
- Circuit Breaker: 特定のノードで過酷なトラフィックが発生した場合、自動的に流入を遮断してシステム全体を保護します。
⚙️ 開発者向けの注意事項
- エージェントの実装: 新規エージェントを開発する場合、必ずMQE SDKを活用してハートビート(Heartbeat)および再接続(Reconnection)ロジックを実装する必要があります。
- 処理遅延への対応: コンシューマー側の処理速度が低下すると
Queue Depthが増加するため、スケールアウトを通じて効率を高めてください。
トラブルシューティング
| 症状 | 原因 | 解決 |
|---|---|---|
| 5671ポートでのMQE接続に失敗する | ファイアウォールがAMQP(5671)ポートを遮断している | WebSocketベースのHTTPS(443)Fallback通信に切り替える |
| 同じメッセージが重複して処理される | At-Least-Once配信の特性上、ACK前に再送される | コンシューマー側でmsgIdを基準に冪等性処理を実装する |
Queue Depthが増加し続ける | コンシューマーの処理速度が流入速度に追いつかない | スケールアウトでコンシューマーを増設する |
| 特定ノードのメッセージ流入が遮断される | 過剰トラフィックによりCircuit Breakerが作動した | トラフィック正常化後、Heartbeat/再接続ロジックで再接続する |
バージョン: 1.0
最終更新日: 2026-03-19
ソースファイル: giipv3/public/help/mqe-spec.ja.md