我正在使用node.js mosca MQTT經紀人爲一些物聯網(IOT)應用程序。MQTT經紀人可以處理的主題最大數量是多少?
https://github.com/mcollina/mosca
什麼是一個MQTT經紀人,專門莫斯卡,可以處理主題的最大數目?
如果我想增加允許主題的數目,有一個配置參數,我可以修改或部分代碼可以更改?
我正在使用node.js mosca MQTT經紀人爲一些物聯網(IOT)應用程序。MQTT經紀人可以處理的主題最大數量是多少?
https://github.com/mcollina/mosca
什麼是一個MQTT經紀人,專門莫斯卡,可以處理主題的最大數目?
如果我想增加允許主題的數目,有一個配置參數,我可以修改或部分代碼可以更改?
不看源莫斯卡我要做出一個通用的經紀人一般性發言。
主題的數量將由客戶端訂閱的主題數量來設置,因爲此列表是在發佈新消息時搜索的內容,所以假設這個列表保留了某種樹結構(它很可能是由於主題的分層性質),那麼極限可能是服務器上的內存量(假設爲64位主機)。
而且因爲莫斯卡上和的NodeJS這樣單線程運行,有一個巨大的話題數量是有可能你耗盡內存之前,影響性能。
雖然hardlib的答案是正確的,我想補充一點,可能主題的數目當然是由經紀人/客戶的最大主題長度的限制的。
如果這嚴格遵循MQTT規範,我們正在討論7^65536個可能的主題(如解釋here),但對於較小的代理/客戶端(例如嵌入的東西),最大主題長度可能遠遠小於65536字節。例如PubSubClient對於整個數據包具有128字節的缺省最大長度。
如果把一個MQTT代理作爲第4層交換機(切換客戶端之間的信息)和主題是地址(鍵),它接通,這將是一個設計糟糕的經紀人,如果你有做任何事情,以使大量的話題。
我們整個運行的常見的應用是每獨立出版商至少1個話題,成千上萬如果不是幾十萬的出版商。