すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for MQTT:ApsaraMQ for MQTT と ApsaraMQ for RocketMQ 間のメッセージ構造マッピング

最終更新日:Jan 14, 2025

このトピックでは、ApsaraMQ for RocketMQ SDK を使用するアプリケーションが ApsaraMQ for MQTT SDK を使用するアプリケーションと対話する場合に関係するメッセージ構造とプロパティのマッピングについて説明します。 これは、サービスの理解と使用に役立ちます。

ApsaraMQ for MQTT は、モバイルデバイス向けに設計されたゲートウェイサービスです。 ApsaraMQ for MQTT は、データ対話ルールに基づいて、ApsaraMQ for RocketMQ などの他の Alibaba Cloud サービスと対話できます。 ルールの詳細については、「データインバウンドルールの管理」をご参照ください。

ApsaraMQ for MQTT のみを使用する場合は、このトピックで説明されているマッピングを無視し、Message Queuing Telemetry Transport (MQTT) プロトコルに従ってください。

ApsaraMQ for MQTT の詳細については、「ApsaraMQ for MQTT とは」および「用語」をご参照ください。

メッセージ構造マッピング

ApsaraMQ for MQTTApsaraMQ for RocketMQ は、パブリッシュ/サブスクライブパターンに基づくメッセージングシステムであり、類似した概念を持っています。 次の図は、メッセージングシステム間の主要な概念とマッピングの違いを示しています。

消息结构

前の図に示すように、ApsaraMQ for MQTT は複数レベルのトピックをサポートしますが、ApsaraMQ for RocketMQ は 1 レベルのトピックをサポートします。 ApsaraMQ for MQTT のレベル 1 のトピックは ApsaraMQ for RocketMQ のトピックにマッピングされ、ApsaraMQ for MQTT の他のレベルのトピックは ApsaraMQ for RocketMQ のメッセージプロパティにマッピングされます。

ApsaraMQ for RocketMQ プロトコルはカスタムプロパティを持つメッセージをサポートしますが、MQTT プロトコルはプロパティをサポートしていません。 MQTT プロトコルでのヘッダーとデバイス情報の追跡を容易にし、ApsaraMQ for RocketMQ SDK のユーザーがそのような情報を取得できるようにするために、ApsaraMQ for MQTT の特定の情報は ApsaraMQ for RocketMQ のメッセージプロパティにマッピングされます。

説明

ApsaraMQ for RocketMQ のプロパティから ApsaraMQ for MQTT のパラメーターへのマッピングを設定する方法については、「プロパティマッピング」の表をご参照ください。

ApsaraMQ for RocketMQApsaraMQ for MQTT は、ビジネスメッセージのデータシリアル化結果をペイロードとして使用します。 ApsaraMQ for RocketMQApsaraMQ for MQTT は、ビジネスメッセージのエンコードまたはデコードを行いません。

プロパティマッピング

次の表は、ApsaraMQ for MQTTApsaraMQ for RocketMQ 間でサポートされているプロパティマッピングについて説明しています。 ApsaraMQ for RocketMQ SDK を使用するアプリケーションが ApsaraMQ for MQTT SDK を使用するアプリケーションと対話する場合、プロパティを読み書きして情報を設定または取得できます。

QoS、cleanSession、topic、および client ID の詳細については、「用語」をご参照ください。

ApsaraMQ for MQTT パラメーター

ApsaraMQ for RocketMQ プロパティキー

有効なプロパティ値

説明

QoS

qoslevel

0、 1、および 2。

メッセージが ApsaraMQ for RocketMQ から ApsaraMQ for MQTT に送信される際に、このプロパティを設定できます。 このプロパティが設定されていない場合、デフォルト値 1 が使用されます。

ApsaraMQ for RocketMQ は、ApsaraMQ for MQTT から送信されたメッセージからこのプロパティを直接読み取ることができます。

Topic

topic

特定のトピックを示す文字列。

このプロパティを設定することはできません。 このプロパティは、ApsaraMQ for MQTT から ApsaraMQ for RocketMQ に送信されたメッセージのすべての送信元トピックを追跡するために使用されます。

cleanSession

cleansessionflag

true および false。

Point-to-Point (P2P) メッセージが ApsaraMQ for RocketMQ から ApsaraMQ for MQTT に送信される場合にのみ、このプロパティを設定できます。 このプロパティを設定しない場合、デフォルト値 true が使用されます。

他のメッセージタイプには、このプロパティを設定できません。 ApsaraMQ for RocketMQ は、ApsaraMQ for MQTT から送信されたメッセージからこのプロパティを直接読み取ることができます。

Subtopic

mqttSecondTopic

特定のサブトピックを示す文字列。

サブトピックを使用して ApsaraMQ for RocketMQ から ApsaraMQ for MQTT に送信されるメッセージをフィルタリングする場合にのみ、このプロパティを設定できます。 このプロパティを設定しない場合、空のままになります。

ApsaraMQ for RocketMQ は、ApsaraMQ for MQTT から送信されたメッセージからこのプロパティを直接読み取ることができます。

クライアントで受信したメッセージのトピック

mqttRealTopic

ビジネスがメッセージ受信クライアントに表示することを期待するサブレベル文字列。

ApsaraMQ for MQTT クライアントが ApsaraMQ for RocketMQ からメッセージを受信した後に指定されたサブトピック名を表示することが想定される場合にのみ、このプロパティを設定できます。 ほとんどの場合、このプロパティは P2P メッセージに適用されます。 このプロパティを設定しない場合、P2P メッセージは固定のトピック名を使用します。

メッセージが ApsaraMQ for MQTT から ApsaraMQ for RocketMQ に送信される場合、このプロパティは使用できません。

clientId

clientId

特定のクライアント ID を示す文字列。

このプロパティを設定することはできません。 このプロパティは、メッセージの送信元である ApsaraMQ for MQTT クライアントの ID を ApsaraMQ for RocketMQ に追跡するために使用されます。