【问题标题】:how to process large amount info received by mqtt client如何处理mqtt客户端收到的大量信息
【发布时间】:2017-02-15 17:04:50
【问题描述】:

我有 mqtt 客户端来接收如下主题和消息

 client.on('message', function (topic, message) {//this function is executed every 2s
  let msg = message.toString();
  processMessage(message);//this takes long time
})

client.on 将每 1 秒调用一次,这取决于另一个 mqtt-client,它发布 mqtt-message。

processMessage() 可能需要大约 2 秒来处理(I/O 和 DB 操作)

如果我这样放着,会出问题的。 各位大神能指点一下这个案子的正确处理方式吗?

例如使用 MemeCache 来快速缓存接收到的数据? 例如使用多线程?

提前致谢

【问题讨论】:

  • 这是突发率还是连续?如果它是连续的,那么数据以两倍的速度进入,那么它总是会导致系统崩溃

标签: node.js mongodb redis memcached mqtt


【解决方案1】:

如果可以并行化processMessage,那么可以,2个并行 平均处理时间为 2 秒的线程应该能够处理 1条/秒的消息到达率。

2 秒的处理时间对我来说似乎很长,即使对于 I/O 和 DB 操作也是如此, 所以我会先看看那里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多