Mqtt 包括MOSQUITO中的默认保留消息

Mqtt 包括MOSQUITO中的默认保留消息,mqtt,mosquitto,Mqtt,Mosquitto,当MOSQUITO启动时,是否可以在MQTT上配置一组默认/硬编码保留消息 我想在microservice架构中使用应用程序配置的保留消息,以允许在运行时修改和分发配置值。但是我需要一种在应用程序第一次启动时初始化消息的方法 另一个解决方案是一个应用程序,它在启动时检查消息是否存在,如果消息丢失,则发布默认消息,但这在MQTT中是不可能的,因为没有GET或EXISTS操作。一种解决方法是,如果没有收到回调,订阅并等待几秒钟,然后再发布默认消息,这似乎不是一个可靠的解决方案。只要您在mosquit

当MOSQUITO启动时,是否可以在MQTT上配置一组默认/硬编码保留消息

我想在microservice架构中使用应用程序配置的保留消息,以允许在运行时修改和分发配置值。但是我需要一种在应用程序第一次启动时初始化消息的方法


另一个解决方案是一个应用程序,它在启动时检查消息是否存在,如果消息丢失,则发布默认消息,但这在MQTT中是不可能的,因为没有
GET
EXISTS
操作。一种解决方法是,如果没有收到回调,订阅并等待几秒钟,然后再发布默认消息,这似乎不是一个可靠的解决方案。

只要您在mosquitto.conf中启用了持久性和持久性文件,若要在中存储数据,则在代理重新启动后仍将传递任何保留的消息


只要您不清除保留的消息(通过使用保留位集和空负载发布同一主题的消息),那么它们将始终存在。

但是初始启动如何?您必须在第一次注入它们一次。您可能可以创建一个预填充的持久性文件,您可以复制到其中,但我没有尝试过。是的,这是我的问题,第一次如何注入它们。该评论的后半部分提出了一个解决方案,但您需要先对其进行测试确定,因此,您可以创建一个持久性文件,方法是将消息发布到运行mosquito的本地/开发人员计算机上,然后使用mosquito将该持久性文件部署到目标环境中。这可能是可能的,但我担心会出现意外的结果,因为我不知道该文件中还有哪些其他内容,例如运行时/特定于环境的数据。持久性文件似乎是未记录的内部MOSQUITO格式。