请问我是否还有其他解决方案可以存储db文件。
#1 楼
mosquitto代理不支持将持久性存储卸载到外部数据库,并且db文件只是内存数据库的备份,以防代理崩溃或关闭。为脱机客户端排队的邮件或大量的大量保留邮件排队的话,将消耗内存。
最好的办法是设置
persistent_client_expiration
选项,以删除长时间未登录的客户端的排队消息时间。有关该选项的详细信息,请参见mosquitto.conf手册页。否则,您将需要使用支持持久化数据库的进程外存储的其他代理。诸如mosca之类的东西可以配置为使用mongo或redis作为后备存储。
评论
当前persitent_client_expiration为1小时,但仍消耗内存。
–布瓦·内什(bhuva nesh)
18年6月7日在6:26
这样一来,内存增长就可能不仅仅限于离线客户端的排队消息。
– hardillb
18年6月7日在6:48
有什么方法可以手动清除保留的邮件吗?
–布瓦·内什(bhuva nesh)
18年6月8日在4:21
不仅要停止代理,还要删除db文件并重新启动或将空有效负载发布到主题(设置了保留标志)。
– hardillb
18 Jun 8'在7:09
评论
即使您可以将消息保留在硬盘驱动器上,也可以无限期地将消息填充到磁盘上。您是否考虑过让这些消息过期? (不确定mosquitto是否提供了此类功能)。