# 离线存储功能

# 什么是离线消息?

  • 前提:离线消息必须是Qos=1或者Qos=2的消息
场景 描述
当客户端发布的消息没有客户端订阅时,那么此消息被定义为离线消息 无订阅的消息
ACK未确认的qos=1或者qos=2的消息,也会被定义为离线消息 ack未确认的消息

# 离线消息使用场景

当设备没有确定投递到订阅的客户端,需要自动缓存消息,待设备上线后订阅消费消息,FluxMQ支持自动存储,订阅拉取消息,并完成消息投递,保证消息可达。

# 离线消息存储方式

方式 描述
离线存储到Redis中 适用于消息量较大的场景
离线存储到Mysql中 适用于小批量设备场景
离线存储到Postgresql中 适用于小批量设备场景

# 离线消息结构

下面为离线消息的报文格式,详细的报文也可以参考 数据类型

字段 解释
id 消息唯一标识
payload MQTT 消息体
messageId MQTT 消息 ID
topic MQTT 主题
qos MQTT 消息的 QoS
retain MQTT 消息是否保持
timestamp 事件触发时间 (单位:毫秒)
clientId 客户端 ID
clientIp 客户端的 IPAddress
nodeIp 事件触发所在节点 IPAddress