3.1 说明

它既是一个基于内存的高性能数据库,它又是基于内存的消息服务器。

是积木式的微服务边缘计算平台,选择了Redis作为自己各微服务的本地数据库和消息服务器。

提供了丰富的集成能力,包括对Redis的数据读写能力和消息处理能力。

Node-RED与Fox-Edge的集成,可以说就是通过Redis,进行交互操作。

3.2 Fox-Edge

3.2.1 系统架构

Fox-Edge的各个微服务,它们的数据存储和接口,以及彼此的交互,是建立在Redis之上的。

3.2.2 数据结构

Fox-Edge在Redis中的数据结构,主要包括 数据存储消息队列 两大类型。

Fox-Edge的各种数据,在系统启动之前是保存在MySql数据库之中的。

Fox-Edge在启动的时候,启动的管理服务,会将MySql的配置数据,装载到Redis之中,然后当配置发生变更的时候, Fox-Edge会自动进行MySql和Redis的双写操作,保持两者的数据一致性。

数据存储 ,为了服务之间进行高效的数据感知,每一种数据类型,均在Redis中,采用明细数据、明细时间戳、总时间戳的方式,进行数据存储。

其中,每一个具体的实体类型,基本上都有一个 生产者 进行数据的管理,然后多个 消费者 进行数据的读取和使用。

  fox.edge.entity.xxxxx.data       -- 明细数据
  fox.edge.entity.xxxxx.agile      -- 明细时间戳
  fox.edge.entity.xxxxx.sync       -- 总时间戳	

消息队列 ,各服务之间进行消息通信,采用的是消息队列的Topic进行订阅、发布的方式,进行互相的通信。

消息队列,首先有个 topic(主题) ,它就像我们我们的论坛、贴吧、知乎下面的一个话题,抖音的一个视频,然后,一堆人会关注这个话题、视频, 底下会有一堆 subscribe(关注) 这个topic的用户(或者应用程序),可接收到大家在上面的各种 message(消息回复) ,你也可以同样在上面 进行 publish(发布) 各种消息回复。那么各个用户这个主题的用户,就可以在这个主题下,彼此进行交流了。

消息队列,这种 中心化的交互模型 可以极大的简化一堆应用之间的互相交互,被现代的各种互联网应用所采用。

Redis 也是一种消息队列的服务,而且由于基于内存实现,采用KV模式,它的性能非常的高效。

3.2.2 交互方式

Node-RED可以通过Redis的数据存储,从Fox-Edge读取各服务的各种配置数据,可以通过Redis的消息队列,跟Fox-Edge进行各种交互操作。

直接用Node-RED参考前端网页Fox-Edge-UI的HTTP消息接口,通过Redis版本的消息接口,对后台的管理服务进行操作请求。

优点:这种方案,非常简单,就能快速操作Fox-Edge的功能。

这是灵狐的 推荐方案

可以用Node-RED获得Redis的数据存储上自己所需要的相关配置,后面可以通过Redis的消息队列作为通信接口,对Fox-Edge各服务进行操作。

优点:可以自己实现前端网页Fox-Edge-UI不具备的各种完整功能,比较适合想要通过Node-RED自己独立实现一个Fox-Edge的嵌入服务。

可以用Node-RED对Redis的数据存储直接进行读取和配置,通过Redis的消息队列作为通信接口,对Fox-Edge的各服务进行操作。

优点:这种方案比较适合那些需要对Fox-Edge进行轻量化裁剪的用户。

比如,某些用户只需要Fox-Edge设备接入能力(此时只需要Fox-Edge的通道服务和设备服务),不需要Fox-Edge的其他各种服务(包括管理服务、网关服务等等)。