拦截activemq设备ID

时间:2014-01-23 11:00:31

标签: activemq mqtt

当经纪人有一个发布者和订阅者(​​通过MQTT)时,持久性中没有消息。我在LevelDB和MySQL中测试过。在LevelDB中只有主题名称。也许配置错了或我需要另一个持久性?也许MQTT消息不会写入消息存储?

我的任务是获取发布者/订阅者ID 。我怎么能这样做,也许是其中一些:

  • 获得另一个持久性,例如带有archiveDataLogs = true或高性能日志的KahaDB?
  • 配置'正确'持久?
  • 获取一些日志或经纪人日记?
  • 编写插件并从RAM获取此数据?

版本5.9。

LevelDb配置:

 <persistenceAdapter>
  <LevelDB directory="${activemq.data}/leveldb"/>
 </persistenceAdapter>

现在,我试图在KahaDB中获取日志存档?但没有结果。存档文件夹为空:

<persistenceAdapter>
  <kahaDB directory="${activemq.data}/kahadb" archiveDataLogs="true" directoryArchive="${activemq.data}/datalog"/>
 </persistenceAdapter>

感谢。

1 个答案:

答案 0 :(得分:0)

我不是ActiveMQ的专家,但我认为这可能很难实现。使用ActiveMQ是您的硬性要求,还是可以更改产品?

如果ActiveMQ不是硬性要求,则可以选择使用功能齐全的MQTT代理,该代理明确允许执行消息拦截,例如HiveMQ。使用插件系统,完全可以拦截消息,提取内容并将其保存到选择的数据库(无论是SQL还是NoSQL)。你可以找到一篇博客文章,了解这将如何运作here

可以找到插件系统的文档here

请注意,自从我使用HiveMQ以来,我可能会有偏见。