小亿 发布的文章

消息总线在 EdgeX 框架中起到了至关重要的作用,模块之间的数据交互,外部系统之间的桥梁,消息总线可以说是不可或缺的必要条件。默认情况下,redis 服务成为了 EdgeX 消息总线的初始化配置。

2023-03-01T02:24:14.png

通用配置

EdgeX 消息总线是可以根据需求来配置和更改具体的实现引擎:

  • Redis(默认)
  • MQTT
  • NATS Core
  • NATS JetStream
  • ZeroMQ(已过时)

eKuiper 规则引擎

EdgeX MessageBus 用于内部 EdgeX 服务到服务的通信。它并不意味着作为外部服务与内部 EdgeX 服务通信的入口点。 eKuiper 规则引擎是一个例外,因为它与 EdgeX 紧密集成。

一般情况下,由于 eKuiper 跟 EdgeX 在部署时处于一个阶段,eKuiper 可以直接从 MessageBus 中直接获取数据,并遵循 MessageBus 消息格式进行解析和处理。

  • 通过 eKuiper 最简单的创建 stream 命令,即可完成对 EdgeX MessageBus 配置:
    CREATE STREAM EdgeXStream () WITH ( FORMAT = "JSON", TYPE = "edgex" )
  • 同样的情况,eKuiper 可以简单的命令创建 数据输出到 EdgeX:
{
  "id": "ruleRedisEvent",
  "sql": "SELECT temperature * 3 AS t1, humidity FROM events",
  "actions": [
    {
      "edgex": {
        "protocol": "redis",
        "host": "localhost",
        "port": 6379,
        "topic": "application",
        "profileName": "ekuiperProfile",
        "deviceName": "ekuiper",        
        "contentType": "application/json"
      }
    }
  ]
}

提示

非专业人士,不建议直接调用 EdgeX MessageBus 进行开发和使用。