开源|EdgeX 消息总线 MessageBus
消息总线在 EdgeX 框架中起到了至关重要的作用,模块之间的数据交互,外部系统之间的桥梁,消息总线可以说是不可或缺的必要条件。默认情况下,redis 服务成为了 EdgeX 消息总线的初始化配置。
通用配置
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 进行开发和使用。