我正在使用node.js mosca MQTT代理来处理某些物联网(iot)应用程序。
https://github.com/mcollina/mosca
MQTT代理(特别是mosca)可以处理的最大主题数是多少?
如果我想增加允许的主题数量,是否有可以修改的配置参数或者我可以更改哪部分代码?
答案 0 :(得分:1)
如果不查看mosca的来源,我将就通用经纪人做一般性陈述。
主题的数量将由客户端订阅的主题数量来设置,因为此列表是在发布新消息时搜索的内容,因此假设此列表保留了某种树结构(这是很可能是由于主题的分层性质)然后限制可能是服务器上的内存量(假设64位主机)。
此外,由于mosca在nodejs上运行,因此具有大量主题可能会在内存不足之前影响性能。
答案 1 :(得分:0)
虽然hardlib的答案是正确的,但我想补充一点,可能主题的数量当然受到经纪人/客户最大主题长度的限制。
如果严格遵循MQTT规范,我们讨论的是7 ^ 65536个可能的主题(如here所述),但对于较小的代理/客户端(例如嵌入式东西),最大主题长度可以小很多比65536字节。例如,PubSubClient对于整个数据包的默认最大长度为128字节。
答案 2 :(得分:0)
如果您将MQTT代理视为第4层交换机(在客户端之间切换消息)并且主题是它所打开的地址(密钥),那么如果您必须执行任何操作来启用a,那么它将是设计糟糕的代理大量话题。
我们遇到的常见应用程序是每个单独的发布商至少有一个主题,如果不是数十万个发布商,则会有数千个。