【问题标题】:Intercept activemq devices ids拦截 activemq 设备 ID
【发布时间】:2014-02-13 21:15:20
【问题描述】:

当代理有一个发布者和订阅者(​​通过 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>

谢谢。

【问题讨论】:

  • 请发布您正在使用的版本以及一些配置或代码与您的问题,否则没有人可以帮助您。

标签: activemq mqtt


【解决方案1】:

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

如果 ActiveMQ 不是硬性要求,另一种选择可能是使用功能齐全的 MQTT 代理,它明确允许进行消息拦截,例如 HiveMQ。使用插件系统,完全可以拦截消息、提取内容并将其保存到选择的数据库(无论是 SQL 还是 NoSQL)。您可以找到一篇博文,其中包含大图 here

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

请注意,由于我在 HiveMQ 上工作,所以我可能会有偏见。

【讨论】:

  • ActiveMQ 很好,因为它支持乘法protocols。任务已更改。我只需要发布者/订阅者 ID,而不需要消息。
猜你喜欢
  • 2022-01-19
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
相关资源
最近更新 更多