它既是一个基于内存的高性能数据库,它又是基于内存的消息服务器。
是积木式的微服务边缘计算平台,选择了Redis作为自己各微服务的本地数据库和消息服务器。
提供了丰富的集成能力,包括对Redis的数据读写能力和消息处理能力。
Node-RED与Fox-Edge的集成,可以说就是通过Redis,进行交互操作。
Fox-Edge的各个微服务,它们的数据存储和接口,以及彼此的交互,是建立在Redis之上的。
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模式,它的性能非常的高效。
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的其他各种服务(包括管理服务、网关服务等等)。