【问题标题】:What is the maximum number of topics that a MQTT broker can handle?MQTT 代理可以处理的最大主题数是多少?
【发布时间】:2015-12-30 02:22:18
【问题描述】:

我正在将 node.js mosca MQTT 代理用于一些物联网 (iot) 应用程序。

https://github.com/mcollina/mosca

MQTT 代理(特别是 mosca)可以处理的最大主题数是多少?

如果我想增加允许的主题数量,有没有可以修改的配置参数或者代码的哪一部分可以修改?

【问题讨论】:

    标签: node.js mqtt iot


    【解决方案1】:

    在不查看 mosca 的来源的情况下,我将就通用代理做一个一般性声明。

    主题的数量将由客户端订阅的主题数量设置,因为此列表是发布新消息时搜索的内容,因此假设保留此列表,我将采用某种树结构(即很可能是由于主题的分层性质),那么限制可能是服务器上的内存量(假设是 64 位主机)。

    此外,由于 mosca 在 nodejs 上运行,因此是单线程的,拥有大量主题可能会在内存不足之前影响性能。

    【讨论】:

      【解决方案2】:

      虽然 hardlib 的回答是正确的,但我想补充一点,可能的主题数量当然受到经纪人/客户最大主题长度的限制。

      如果严格遵循 MQTT 规范,我们正在谈论 7^65536 个可能的主题(如 here 解释的那样),但对于较小的代理/客户端(例如嵌入式内容),最大主题长度可能比 65536 小很多字节。例如,PubSubClient 的默认最大长度为 128 字节整个数据包

      【讨论】:

        【解决方案3】:

        如果您将 MQTT 代理视为第 4 层交换机(在客户端之间切换消息),并且主题是它打开的地址(键),那么如果您必须做任何事情来启用大量的主题。

        我们运行的常见应用程序是每个单独的发布者至少有 1 个主题,有数千个甚至数十万个发布者。

        【讨论】:

          猜你喜欢
          • 2016-05-04
          • 1970-01-01
          • 2016-04-03
          • 1970-01-01
          • 2019-09-03
          • 2016-07-30
          • 1970-01-01
          • 1970-01-01
          • 2016-01-20
          相关资源
          最近更新 更多