如何在/ mosquitto / data MQTT mosquitto中存储消息?

问题描述 投票:1回答:1

我正在Docker中运行AWS ECS,并且在ECS实例的docker容器内,我正在运行eclipse-mosquitto

我需要将消息存储在/mosquitto/data

我尝试了什么

[docker exec -it [container name] sh导航至/mosquitto/config/mosquitto.conf

修改了mosquitto.conf文件并添加了以下几行:

persistence true
persistence_location /mosquitto/data/
listener 1883
listener 9001
protocol websockets

NOTE

我在EFS上安装了/mosquitto,因此我希望配置文件能够持久存在,并且我希望它在下次容器重启时使用该配置文件

我期望什么

无论何时我是主题的publishing/subscribing,都应将相关数据存储在mosquitto/data

docker mqtt mosquitto
1个回答
1
投票

第一

登录到运行中的容器并编辑配置文件不会更改运行中的代理行为。

您通常需要重新启动容器(它将更改恢复到配置文件)

您可以在启动时使用以下命令行选项将自己的配置文件安装到容器中(在docker hub page上进行了描述]

$ docker run -it -p 1883:1883 -p 9001:9001 -v mosquitto.conf:/mosquitto/config/mosquitto.conf eclipse-mosquitto

第二

mosquitto不会将所有消息存储在持久性文件中,这不是它的用途。该文件仅用于存储正在运行的QOS 1或2消息以及保留的消息。这些消息通常保留在内存中,但是会定期或在代理关闭时写入到文件中,以便在代理重新启动时可以将其还原。持久性文件的格式也是自定义二进制格式,这不是您可以轻松阅读的格式。
© www.soinside.com 2019 - 2024. All rights reserved.