服务名称:持久化服务
模块名称:persist-service
持久化服务,是Fox-Edge中的系统级服务,它作用是负责将获得的南向设备数据,持久性的保存在MySQL、Redis之中,防止采样数据的丢失。
其他各服务获得设备的采样数据之后,会通过Redis消息队列,把数据推送给该服务,请求入库保存。
它为设备服务、控制器服务提供保存数据的服务,这样设备服务、控制器服务就可以在内存中高速运行,不需要关注数据的保存。
它是一个关键性的基础服务,被定义为系统级别。
在组件仓库中,选择persist-service组件进行下载和安装
在Fox-Edge之中安装持久化服务之后,会有默认的系统参数,作为该服务的工作参数。
该参数主要是制定定期清理源源不断产生的用户操作数据和设备历史数据的计划。
{
"deviceHistory": {
"period": 3601,
"maxCount": 1000000
},
"operateRecord": {
"period": 3600,
"maxCount": 10000
}
}
{
"deviceHistory": {-------------------定期清理历史记录,防止数据库表过渡膨胀
"period": 3600,-----------------3600秒清理一次
"maxCount": 1000000-------------最大保留1000000条记录
},
"operateRecord": {-------------------定期清理历史记录,防止数据库表过渡膨胀
"period": 3600,-----------------3600秒清理一次
"maxCount": 10000---------------最大保留10000条记录
}
}
持久化服务在redis上订阅了topic_persist_request_public的topic消息,设备服务、控制器服务会将它们需要保存的数据,
发送到这个topic上,那么持久化服务数据会对来自这个接口的消息进行数据的保存。
数据结构为TaskRespondVO格式,该格式包括
1、设备的通信状态,保存在redis中
2、设备的状态数据,保存在redis中
3、设备的记录数据,保存在mysql中
4、用户的操作记录,保存在mysql中
5、设备的历史数据,保存在mysql中
操作结果数据:record,根据该标识,会记录到mysql的tb_operate_record表中
设备记录数据:data/value/record,会记录到mysql的tb_device_record表中
设备状态数据:data/value/status,会记录到redis的fox.edge.entity.ObjectEntity和fox.edge.entity.DeviceValueEntity中
历史记录数据:data/value/status中的数字类数据,会记录到mysql的tb_history表中