Mosquitto Persistence 文件自动清除 (mosquitto.db)
AutoClear for Mosquitto Persistence file (mosquitto.db)
在mosquitto
docu中描述了当设置persistence
到true
时:
the data will be written to disk when mosquitto closes and also at
periodic intervals as defined by autosave_interval
由于定期“转储”,mosquitto.db
文件将不断增加。如何自动清除旧数据(我不需要历史,只需要最新的值)
你没有,你的前提似乎是错误的。
文件不应该只是继续增长,当代理刷新它在内存数据库中时,它会替换磁盘上的文件,它不只是追加到末尾。
如果文件在增长,那么您的内存数据库也在增长,您有时会遇到问题。
持久性存储包含 3 个东西。
给定主题的任何保留消息的当前值。 (假设消息有一个固定的大小,那么它只会在保留的消息数量增长时增长)
持久会话数据,例如给定客户订阅了哪些主题。这将直接反映您拥有的客户数量。如果您使用随机客户端 ID,请确保将 cleanSession
设置为 false。
QOS 大于 0 的任何未确认消息。它们分为 2 个子组:
飞行中的高 QOS 消息,这些消息通常应该暂时保留,直到它被 broker/subscribers
完全处理
具有持续会话和高 QOS 订阅的脱机客户端的排队消息。如果您有当前处于离线状态的客户端,那么这将依赖消息 size/rate 直到客户端恢复在线(如果您认为不应该让客户端长时间离线,请参见第 2 点)
如果需要,您还可以使用 mosquitto 选项 persistent_client_expiration duration
在给定的时间长度后删除持续会话。
在mosquitto
docu中描述了当设置persistence
到true
时:
the data will be written to disk when mosquitto closes and also at periodic intervals as defined by autosave_interval
由于定期“转储”,mosquitto.db
文件将不断增加。如何自动清除旧数据(我不需要历史,只需要最新的值)
你没有,你的前提似乎是错误的。
文件不应该只是继续增长,当代理刷新它在内存数据库中时,它会替换磁盘上的文件,它不只是追加到末尾。
如果文件在增长,那么您的内存数据库也在增长,您有时会遇到问题。
持久性存储包含 3 个东西。
给定主题的任何保留消息的当前值。 (假设消息有一个固定的大小,那么它只会在保留的消息数量增长时增长)
持久会话数据,例如给定客户订阅了哪些主题。这将直接反映您拥有的客户数量。如果您使用随机客户端 ID,请确保将
cleanSession
设置为 false。QOS 大于 0 的任何未确认消息。它们分为 2 个子组:
飞行中的高 QOS 消息,这些消息通常应该暂时保留,直到它被 broker/subscribers
完全处理具有持续会话和高 QOS 订阅的脱机客户端的排队消息。如果您有当前处于离线状态的客户端,那么这将依赖消息 size/rate 直到客户端恢复在线(如果您认为不应该让客户端长时间离线,请参见第 2 点)
如果需要,您还可以使用 mosquitto 选项 persistent_client_expiration duration
在给定的时间长度后删除持续会话。