消息未保留在Apollo服务器中

时间:2013-03-26 17:33:05

标签: mqtt apollo

通过使用fusesource代码将mqtt消息发布到Apollo服务器,我遇到了问题。   我用以下代码编写了消息发布者

connection.publish(topic, message.getBytes(),QoS.AT_LEAST_ONCE, true);

我还编写了订阅该主题的消息使用者。如果我首先启动我的消费者,然后是发布者,则消费者可以正确获取所有消息。但是,如果我首先启动发布者然后启动消费者,则消费者将不会收到消息。   此外,我进入Apollo管理控制台,我在队列中找不到任何消息。 (请参阅随附的屏幕截图)。

我该怎么做才能解决这个问题?我不能让我的消费者一直在运行,我不想丢失来自发布者的任何消息。当消费者离线时,经纪人(Apollo)不应该保留所有消息吗?如果是的话,为什么我看不到它?

这似乎是一个愚蠢的问题,但我对MQTT很新,我确实需要一些帮助。

2 个答案:

答案 0 :(得分:2)

我怀疑一旦没有生产者或消费者附加到该主题,该主题就会被自动删除。要禁用自动删除“功能”,请在apollo.xml中的virual_host配置元素中添加以下XML元素:

<topic auto_delete_after="0"/>

未来版本的apollo将避免在保留留言APLO-319 时删除主题。

答案 1 :(得分:0)

这似乎是一个错误,因为您已将邮件标记为已保留。但是,我不知道Apollo如何处理有关主题的多个保留​​消息。你可能想在他们的邮件列表中提出这个问题。