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

ApsaraMQ for MQTT:制限

最終更新日:Apr 08, 2025

このトピックでは、ApsaraMQ for MQTT の特定のメトリックの制限について説明します。ApsaraMQ for MQTT を使用する場合、アプリケーションで例外が発生しないように、これらのメトリックに有効な値を指定してください。次の表に制限を示します。

ApsaraMQ for MQTT Enterprise Platinum Edition インスタンスを使用している場合、次の表に示す特定のメトリックにカスタム値を指定できます。メトリックのカスタム値を指定するには、DingTalkグループ 116015007918 に参加して ApsaraMQ for MQTT テクニカルサポートにお問い合わせください。

インスタンス

項目

制限

説明

インスタンス名

  • インスタンス名は 3 ~ 64 文字である必要があります。

  • インスタンス名には、数字、文字、ハイフン(-)、アンダースコア(_)を含めることができます。名前は大文字と小文字を区別しません。

  • インスタンス名は、同じリージョン内で一意である必要があります。

インスタンスを作成するときに、インスタンスのカスタム名を指定することはできません。新しいインスタンスのデフォルト名は、インスタンスのIDです。インスタンス名を変更するには、ApsaraMQ for MQTT コンソール にアクセスします。

単一インスタンスのメッセージング TPS

スロットリングは、購入した仕様に基づいてトリガーされます。指定された 1 秒あたりのトランザクション数(TPS)のしきい値を超えると、オープンソースの MQTT クライアント SDK およびクラウド SDK で、切断、応答タイムアウト、メッセージ破棄などの問題が発生する可能性があります。この場合、ApsaraMQ for MQTT はメッセージの信頼性の高い配信を保証しません。

単一の ApsaraMQ for MQTT クライアントは、少数のメッセージのみをパブリッシュおよびサブスクライブします。特定の SDK は、大規模なメッセージング TPS をサポートしていません。単一の ApsaraMQ for MQTT クライアントでは、最大 20 メッセージング TPS を指定することをお勧めします。クラウドサーバーでより大きなメッセージング TPS が必要な場合は、ApsaraMQ for RocketMQ クライアントを使用できます。

単一インスタンスに接続されている ApsaraMQ for MQTT クライアントの数

スロットリングは、購入した仕様に基づいてトリガーされます。インスタンス仕様の指定されたしきい値を超えると、新しい接続の要求が拒否される場合があります。

単一インスタンスに接続されている ApsaraMQ for MQTT クライアントの最大数を超えると、ApsaraMQ for MQTT は自動的にアラートを送信します。ビジネス要件に基づいてアラートしきい値を指定することをお勧めします。

単一インスタンスのサブスクリプション数

仕様で指定されたしきい値を超えると、新しいサブスクリプションの作成に失敗したり、既存のサブスクリプションの接続が中断されたり、既存のサブスクリプションが完全ではなくなる可能性があります。

単一インスタンスのサブスクリプション数を超えると、ApsaraMQ for MQTT は自動的にアラートを送信します。ビジネス要件に基づいてアラートしきい値を指定することをお勧めします。

インスタンスのエンドポイントとして使用されるドメイン名の IP アドレス

なし。

IPアドレスは予期せず変更される可能性があります。IPアドレスが固定されていると想定しないでください。ApsaraMQ for MQTT テクニカルチームは、次のシナリオにおける障害または直接的または間接的な損失について責任を負いません。

  • ApsaraMQ for MQTT ブローカーへのアクセスに、ドメイン名ではなく IP アドレスを使用しています。ApsaraMQ for MQTT テクニカルチームがドメイン名解決を更新した後、元の IP アドレスは無効になります。

  • クライアントが実行されているネットワークで、IP アドレスのファイアウォールポリシーが構成されています。ApsaraMQ for MQTT テクニカルチームがドメイン名解決を更新した後、ファイアウォールポリシーにより新しい IP アドレスがブロックされます。

トピック

項目

制限

説明

トピック名

  • トピック名は 3 ~ 64 文字である必要があります。

    説明

    トピック名の長さは、親トピックとそのサブトピックの名前の合計の長さを指します。

  • トピック名には、数字、文字、ハイフン(-)、アンダースコア(_)を含めることができます。名前は大文字と小文字を区別しません。

  • 親トピックの名前は、インスタンス内で一意である必要があります。

ApsaraMQ for MQTT を使用してメッセージをパブリッシュおよびサブスクライブする場合、トピックの名前は有効な長さの範囲内である必要があります。そうでない場合、メッセージをパブリッシュまたはサブスクライブすることはできません。

単一インスタンスの親トピックの数

25

デフォルト値がビジネス要件を満たしていない場合は、DingTalkグループ 116015007918 に参加して ApsaraMQ for MQTT テクニカルサポートにお問い合わせください。

説明

サブトピックの数に制限はありません。ビジネスの安定した実行を確保するために、1,000 以下のサブトピックを作成することをお勧めします。

トピックのリージョン間使用

サポートされていません。

ApsaraMQ for MQTTApsaraMQ for RocketMQ 間のデータ交換のルールが構成されている場合、対応するリソースは同じリージョンに存在する必要があります。

クライアント

項目

制限

説明

クライアント ID

  • クライアント ID は 64 文字以下である必要があります。

  • クライアント ID には、数字、文字、ハイフン(-)、アンダースコア(_)のみを含めることができます。

ApsaraMQ for MQTT を使用してメッセージをパブリッシュおよびサブスクライブする場合、クライアント ID は 64 文字以下である必要があります。そうでない場合、クライアントは切断されます。

グループ ID

  • グループ ID は 7 ~ 64 文字である必要があります。

  • グループ ID には、数字、文字、ハイフン(-)、アンダースコア(_)のみを含めることができます。GID_ または GID- で始まる必要があります。

  • グループ ID は、インスタンス内で一意である必要があります。

ApsaraMQ for MQTT を使用してメッセージをパブリッシュおよびサブスクライブする場合、グループ ID は有効な長さの範囲内である必要があります。そうでない場合、メッセージをパブリッシュまたはサブスクライブすることはできません。

デバイス ID

  • デバイス ID の長さは動的です。クライアント ID は <GroupID>@@@<DeviceID> 形式です。クライアント ID は 64 文字以下である必要があります。

  • デバイス ID には、数字、文字、ハイフン(-)、アンダースコア(_)のみを含めることができます。

  • デバイス ID は、グループ内で一意である必要があります。

ApsaraMQ for MQTT を使用してメッセージをパブリッシュおよびサブスクライブする場合、デバイス ID は 64 文字以下である必要があります。そうでない場合、クライアントは切断されます。

クライアントがサブスクライブできるトピックの数

30

各クライアントは、同時に最大 30 個のトピックをサブスクライブできます。サブスクライブされたトピックの数が 30 に達すると、新しいサブスクリプションを追加することはできません。ApsaraMQ for MQTT Enterprise Platinum Edition インスタンスを使用している場合は、クライアントがサブスクライブできるトピックの最大数を増やすことができます。数を増やすには、DingTalkグループ 116015007918 に参加して ApsaraMQ for MQTT テクニカルサポートにお問い合わせください。

ワイルドカード(*)を含むサブスクリプションを使用してトピックをサブスクライブする場合、トピックは 1 つのサブスクライブされたトピックとしてカウントされます。同じ親トピックの異なるサブトピックがサブスクライブされている場合、各サブトピックはサブスクライブされたトピックとしてカウントされます。たとえば、A/# は 1 つのサブスクライブされたトピックとしてカウントされます。A/# と A/a1/# は 2 つのサブスクライブされたトピックとしてカウントされます。

ワイルドカード(*)を含むサブスクリプションの数

各親トピックは、ワイルドカード(*)を含む最大 100 個のサブスクリプションをサポートします。

ApsaraMQ for MQTT ブローカーは、各親トピックに対してワイルドカード(*)を含むアクティブなサブスクリプションの数を制限しています。最大値を超えると、ApsaraMQ for MQTT ブローカーは 100 個のサブスクリプションのみを読み込みます。その結果、一部のサブスクライバーはメッセージを受信できない場合があります。ワイルドカードを含むサブスクリプションの数を厳密に制御することをお勧めします。たとえば、同じ親トピック A の下の A/#、A/a1、A/a2/# へのサブスクリプションは、3 つのサブスクリプションとしてカウントされます。

最大ハートビート間隔

8分

ApsaraMQ for MQTT を使用してメッセージをパブリッシュおよびサブスクライブする場合、指定できる最大ハートビート間隔は 8 分です。

メッセージ受信、メッセージ送信、およびクライアントステータス通知ルール

項目

制限

説明

単一インスタンスのルール数

100

デフォルト値がビジネス要件を満たしていない場合は、DingTalkグループ 116015007918 に参加して ApsaraMQ for MQTT テクニカルサポートにお問い合わせください。

ルールの重複排除

各内部リソースに対して、同じタイプのルールを 1 つだけ作成できます。

たとえば、各グループ ID に対してクライアントステータス通知のルールを 1 つだけ作成でき、ApsaraMQ for MQTT の各トピックに対してデータ受信ルールとデータ送信ルールを 1 つずつ作成できます。

リージョン

リージョンをまたいでルールを作成することはできません。ルールのデータソースとデータデスティネーションが属するインスタンスは、同じリージョンに存在する必要があります。

たとえば、データソースが中国(杭州)リージョンの ApsaraMQ for MQTT として指定されているデータ送信ルールを作成する場合、データデスティネーションとして中国(杭州)リージョンの ApsaraMQ for RocketMQ インスタンスのみを選択できます。

ApsaraMQ for MQTT インスタンスバージョン

カーネルバージョンが 3.x.x のインスタンスに対してのみルールを作成できます。

ApsaraMQ for MQTT インスタンスのカーネルバージョンは、ApsaraMQ for MQTT コンソール のインスタンスリストまたは [インスタンスの詳細] ページで確認できます。

ApsaraMQ for RocketMQ インスタンスバージョン

ApsaraMQ for RocketMQ 4.0 インスタンスのみがサポートされています。

データ受信ルールまたはデータ送信ルールを使用して ApsaraMQ for MQTTApsaraMQ for RocketMQ 間でデータを交換する場合、ApsaraMQ for RocketMQ 4.0 インスタンスのみを使用できます。

メッセージング

項目

制限

説明

メッセージサイズ

64 KB

メッセージのサイズが最大値を超えると、メッセージは破棄されます。

ApsaraMQ for MQTT Enterprise Platinum Edition インスタンスを使用している場合は、最大メッセージサイズを増やすことができます。最大メッセージサイズを増やすには、DingTalkグループ 116015007918 に参加して ApsaraMQ for MQTT テクニカルサポートにお問い合わせください。

メッセージ保持期間

3日

ApsaraMQ for MQTT は、QoS パラメーターが 1 に設定され、cleanSession パラメーターが false に設定されている場合にのみ、オフラインメッセージを保持します。オフラインメッセージは最大 3 日間保持され、この期間が経過すると自動的に削除されます。QoS パラメーターと cleanSession パラメーターの詳細については、「用語」をご参照ください。

ApsaraMQ for MQTT Enterprise Platinum Edition インスタンスを使用している場合は、メッセージ保持期間を増やすことができます。メッセージ保持期間を増やすには、DingTalkグループ 116015007918 に参加して ApsaraMQ for MQTT テクニカルサポートにお問い合わせください。

QoS および cleanSession の構成

QoS パラメーターを 2 に設定し、cleanSession パラメーターを false に設定することはできません。

ApsaraMQ for MQTT を使用してメッセージをパブリッシュおよびサブスクライブする場合、次の構成を指定できます。

  • cleanSession パラメーターが true に設定されている場合、QoS パラメーターは 0、1、または 2 に設定できます。

  • cleanSession パラメーターが false に設定されている場合、QoS パラメーターを 2 に設定することはできません。ApsaraMQ for MQTT はこの構成をサポートしていません。

トークンの有効期間

30日

ApplyToken オペレーションを呼び出すときに、ExpireTime パラメーターが 30 より大きい値に設定されている場合、トークンが返され、エラーは報告されません。このトークンの有効期間は引き続き 30 日です。

オフラインメッセージの待機期間

最大期間:10秒

ApsaraMQ for MQTT ブローカーが初めてメッセージをプッシュするとき、ブローカーはメッセージがタイムアウトまたは失敗した後にのみ、メッセージがオフラインメッセージに変換されるかどうかを判断できます。待機期間は 5 秒から 10 秒です。

保存されているオフラインメッセージの数

1,000,000

インスタンスの ApsaraMQ for MQTT ブローカーは、インスタンスに保存されているオフラインメッセージの数を制限しています。最大値を超えると、ApsaraMQ for MQTT ブローカーは最も古い保存済みオフラインメッセージを削除します。オフラインメッセージが多すぎるのを防ぐために、トピックをサブスクライブするときに cleanSession パラメーターを適切な値に設定します。

デフォルト値がビジネス要件を満たしていない場合は、DingTalkグループ 116015007918 に参加して ApsaraMQ for MQTT テクニカルサポートにお問い合わせください。