本文為您介紹MQTT 5.0的新特性主題別名。
背景資訊
使用蜂窩網路接入物聯網平台的物聯網裝置,大部分對流量和功耗非常敏感。例如農業情境下的溫度感應器依靠電池供電,每個月的流量只有幾MB。在這種情境下,更小的資料包傳輸可以降低電量和流量的消耗。主題別名可以將字串主題替換為數字,從而降低訊息的資料包長度。一個主題一般包含業務屬性,長度為幾十個位元組,甚至超過載體的長度,但通過主題別名轉換成數字後只有四個位元組。
使用限制
主題別名的實現依賴主題和別名的映射關係,裝置端和阿里雲物聯網平台都需要維護相應的映射關係。該映射關係會在初次使用別名時添加,並在串連斷開時刪除,因此重新串連的裝置需要重新完成主題和別名的映射。
別名不能重複,Topic和別名是一一對應關係。
如果使用主題別名,請勿並發發布訊息。否則,因為雲端分布式的特點,可能導致並發的訊息丟失。
每個裝置支援的主題別名數量最多為20,訊息上行或下行的數量最多為20。
使用情境
下圖以溫度感應器為樣本,介紹主題別名的原理及使用流程。樣本中訊息A和訊息B的Payload是一樣的,訊息A有主題和別名,訊息B主題為空白用別名替換。主題/sys/product_name/device_001/farmland_1234/sensors/temperature
長度超過60位元組,使用主題別名節省了這部分的頻寬。