MQTT 5.0 のトピックエイリアスは、文字列のトピックを数値識別子に置き換えることで、パケットサイズを縮小し、制約のある IoT デバイスの帯域幅を節約します。
背景情報
セルラーネットワーク経由で接続する IoT デバイスは、トラフィックや消費電力の影響を受けやすい傾向があります。例えば、農業シナリオで使用するバッテリー駆動の温度センサーでは、月間トラフィックの使用制限が数 MB 程度に限られる場合があります。データパケットを小さくすると、消費電力と通信量の削減に役立ちます。トピックエイリアスは、文字列のトピックを数値に置き換える ことで、メッセージパケットのサイズを縮小します。トピック文字列には通常、ビジネスプロパティが含まれ、数十バイトになることがあります。場合によっては、ペイロード自体よりも長くなることもあります。トピックエイリアスは、この文字列を 4 バイト長の数値に置き換えます。
使用制限
-
トピックエイリアスは、トピックとエイリアス間のマッピングに依存します。デバイスと Alibaba Cloud IoT Platform の両方で、このマッピングを維持する必要があります。マッピングは、エイリアスが初めて使用されたときに作成され、接続が閉じられると削除されます。デバイスは再接続後にマッピングを再確立する必要があります。
-
エイリアスは一意である必要があります。各トピックは、ちょうど 1 つのエイリアスにマッピングされます。
-
トピックエイリアスを使用する場合は、メッセージを同時にパブリッシュしないでください。クラウドの分散特性により、同時メッセージが失われる可能性があります。
-
各デバイスは、アップストリームおよびダウンストリームメッセージの両方で、最大 20 個のトピックエイリアスをサポートします。
シナリオ
次の図では、温度センサーを例にトピックエイリアスの動作を示します。この例では、メッセージ A とメッセージ B のペイロードは同一です。メッセージ A にはトピックとエイリアスの両方が含まれます。メッセージ B ではトピックが空で、エイリアスに置き換えられています。トピック /sys/product_name/device_001/farmland_1234/sensors/temperature は 60 バイトを超えます。トピックエイリアスを使用すると、この帯域幅を節約できます。