メッセージキューイングテレメトリートランスポート (MQTT) は、パブリッシュ/サブスクライブ (pub/sub) モデルに基づくメッセージングプロトコルです。MQTT では、各メッセージはトピックに属します。MQTT は、複数レベルのトピックをサポートしています。レベル 1 のトピックは親トピックです。ApsaraMQ for MQTT を使用する前に、ApsaraMQ for MQTT コンソールで親トピックを作成する必要があります。
注意事項
トピックはインスタンス間で使用することはできません。例えば、インスタンス B のエンドポイントを使用して、インスタンス A で作成されたトピックをサブスクライブすることはできません。
サブトピックは、ApsaraMQ for MQTT コンソールで手動で作成する必要はありません。クライアントコードでサブトピックを宣言するだけで、サブトピックは自動的に作成され、有効になります (自動作成)。親トピックは、コンソールで事前に作成するか、API を呼び出して作成する必要があります。親トピックとサブトピックの詳細については、「用語」をご参照ください。
各親トピックに対して最大 100 個のワイルドカードサブスクリプションを作成できます。詳細については、「クライアントの制限」をご参照ください。
トピックとグループは独立して管理されます。グループはデバイスグループの識別とアクセスの制御に使用され、トピックはメッセージチャネルです。トピックを作成する際にグループを関連付ける必要はありません。
テスト環境と本番環境の両方に同じインスタンスを使用する場合は、論理的な隔離を実現するために、親トピック、Group ID、および Client ID を個別に設定してください。メッセージを送信またはサブスクライブする際に、異なる環境のリソースを混在させないでください。混在させると、メッセージが相互に干渉したり、クライアントが強制的に切断されたり、クライアントが不正なメッセージを受信したりする可能性があります。
トピックの作成
ApsaraMQ for MQTT コンソールにログインします。左側のナビゲーションウィンドウで、インスタンスリスト をクリックします。
上部のナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。[インスタンス] ページで、インスタンス名をクリックして インスタンスの詳細 ページに移動します。
- 左側のナビゲーションウィンドウで、トピックの管理 をクリックします。[トピック] ページの左上隅にある トピックの作成 をクリックします。
- [トピックの作成] パネルで、トピックの 名前 と 記述 パラメーターを設定し、左下隅にある [OK] をクリックします。
トピックの削除
- トピックの管理 ページに移動します。
- トピックリストで、削除するトピックを見つけます。操作 列で、 を選択します。
- 表示されるダイアログボックスで、[OK] をクリックします。
トピックの説明の更新
- トピックの管理 ページに移動します。
- トピックリストで、更新するトピックを見つけ、トピック名をクリックします。
- トピックの詳細 ページの 基本情報 セクションで、記述 の横にある 編集 をクリックします。フィールドでトピックの説明を変更し、OK をクリックします。
トピック詳細のクエリ
- トピックの管理 ページに移動します。
- トピックリストで、クエリを実行するトピックを見つけます。トピック名をクリックして、トピックの詳細 ページに移動します。
よくある質問
Q:ApsaraMQ for MQTT へのトラフィックを制限するにはどうすればよいですか。
ApsaraMQ for MQTT は、直接的なトラフィック制限ルールを提供していません。緊急時にトラフィックをブロックするには、次の方法が利用できます:
ユーザー名とパスワードの生成に使用される AccessKey (AK) を削除します。AK が他のプロダクトでも使用されている場合は、削除しないでください。
対応するトピックまたはグループリソースを削除します。削除後はデータを回復できないことにご注意ください。
Q:+ ワイルドカードを使用して複数のサブトピックをサブスクライブする際に、一部のメッセージが受信できない場合はどうすればよいですか。
この問題は通常、クライアントのサブスクリプション数の制限またはサブスクリプション ACK メカニズムに関連しています。次のトラブルシューティング手順に従ってください:
クライアントのサブスクリプション関係の数が制限を超えていないか確認します。親トピックごとに最大 100 のワイルドカードサブスクリプション関係が許可されています。
クライアントがサブスクリプション ACK を正しく処理していることを確認します。サブスクリプションが確認されない場合、バックエンドのサブスクリプションステータスが異常になり、一部のメッセージが失われる可能性があります。
サブスクリプション数を調整しても問題が解決しない場合は、チケットを送信し、詳細な調査のために Client ID と特定のトピック情報を提供してください。
参考
トピックのデータインバウンドルールまたはアウトバウンドルールを作成することもできます。詳細については、「ルールの管理」をご参照ください。
ApsaraMQ for MQTT インスタンスでトピックとグループを作成した後、メッセージを送受信できます。詳細については、「ApsaraMQ for MQTT SDK for Java を使用して ApsaraMQ for MQTT クライアントとバックエンドサービスアプリケーション間のメッセージングを実装する」をご参照ください。