ApsaraMQ for MQTT では、インスタンス、トピック、クライアント、およびメッセージングに以下の制限が適用されます。これらの制限を超過すると、接続の切断やメッセージの損失などのアプリケーション例外が発生する可能性があります。
プラチナエディションの ApsaraMQ for MQTT インスタンスを購入すると、以下の表に示す一部のメトリクスをカスタマイズできます。カスタマイズを依頼するには、DingTalk グループ 116015007918 で ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。
インスタンスの制限
|
制限項目 |
制限 |
説明 |
|
インスタンス名 |
|
インスタンスの作成時にカスタム名を指定することはできません。インスタンス名はデフォルトでインスタンス ID と同じですが、ApsaraMQ for MQTT コンソールで名前を変更できます。 |
|
インスタンスあたりの 1 秒あたりのメッセージトランザクション (TPS) |
購入仕様に基づいてスロットリングされます。メッセージ TPS が仕様上限を超えると、クライアント (オープンソースの MQTT クライアントおよびクラウド SDK を含む) で、切断、応答タイムアウト、またはメッセージの破棄が発生する可能性があります。 |
単一の MQTT クライアントが処理するメッセージ量は通常少なく、一部の SDK は高スループット向けに設計されていません。単一の MQTT クライアントのメッセージ TPS は 20 未満にしてください。サーバー側のシナリオでより高いスループットが必要な場合は、代わりに ApsaraMQ for RocketMQ クライアントを使用してください。 |
|
インスタンスあたりのオンライン接続数 |
購入仕様に基づいてスロットリングされます。接続数が仕様上限を超えると、新規接続が拒否される場合があります。 |
ApsaraMQ for MQTT は、デフォルトでオンライン接続を監視し、アラートを送信します。必要に応じてアラートのしきい値を調整できます。 |
|
インスタンスあたりのサブスクリプション関係 |
サブスクリプション数が仕様上限を超えると、新規サブスクリプションが失敗する場合があります。また、既存のクライアント接続が切断されたり、サブスクリプションの整合性が保証されなくなったりする可能性があります。 |
ApsaraMQ for MQTT は、デフォルトでサブスクリプション関係を監視し、アラートを送信します。必要に応じてアラートのしきい値を調整できます。 |
|
インスタンスエンドポイントの IP アドレス |
なし |
インスタンスエンドポイントの IP アドレスは動的であり、いつでも変更される可能性があります。アプリケーションに IP アドレスをハードコーディングしないでください。ApsaraMQ for MQTT は、以下の状況によって引き起こされた問題について責任を負いません。
|
トピックの制限
|
制限項目 |
制限 |
説明 |
|
トピック名 |
|
メッセージの送受信時、トピック名は指定された長さの範囲内である必要があります。範囲外の場合、メッセージ送信とトピックのサブスクリプションに失敗します。 |
|
インスタンスあたりの親トピック数 |
25 |
デフォルトの制限が要件を満たさない場合は、ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。DingTalk グループ番号は 116015007918 です。 説明
子トピック数に制限はありません。安定した業務運用のため、子トピック数は 1,000 を超えないようにすることを推奨します。 |
|
クロスリージョンでのトピック使用 |
サポートされていません |
ApsaraMQ for MQTT でルールを設定して ApsaraMQ for RocketMQ とのデータ通信を有効にする場合、関連リソースは同じリージョンにある必要があります。 |
クライアントの制限
|
制限項目 |
制限 |
説明 |
|
Client ID |
|
Client ID はこの長さ制限を超えてはなりません。超過した場合、クライアント接続は切断されます。 |
|
Group ID |
|
Group ID は指定された長さの範囲内である必要があります。範囲外の場合、クライアントはメッセージを送信できず、トピックをサブスクライブできません。 |
|
Device ID |
|
Device ID は長さ制限に従う必要があります。従わない場合、クライアント接続は切断されます。 |
|
単一クライアントがサブスクライブできるトピック数 |
30 |
各クライアントは、同時に最大 30 のトピックをサブスクライブできます。この上限を超えると、新しいサブスクリプションリクエストは失敗します。プラチナエディションのインスタンスでは、カスタマイズが可能です。カスタマイズをご希望の場合は、DingTalk グループ 116015007918 で ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。 サブスクライブ済みトピック数を計算する際、ワイルドカード文字を含むサブスクリプションは 1 つのサブスクリプションとしてカウントされます。同一の親トピック配下にある異なる子トピックへのサブスクリプションは、それぞれ別のサブスクリプションとしてカウントされます。たとえば、A/# へのサブスクリプションは 1 つとしてカウントされます。A/# と A/a1/# へのサブスクリプションは 2 つとしてカウントされます。 |
|
ワイルドカードのサブスクリプション関係数 |
各親トピックで許可されるワイルドカードのサブスクリプション関係は最大 100 です。 |
サーバーは、親トピックあたりのアクティブなワイルドカードサブスクリプションを 100 に制限します。超過した場合、100 件の関係しかロードされないため、一部のクライアントがメッセージを受信できない可能性があります。ワイルドカードサブスクリプション数を厳密に管理してください。たとえば、親トピック A の場合、A/#、A/a1/#、A/a2/# へのサブスクリプションは、それぞれ 1 件としてカウントされ、合計で 3 つの関係としてカウントされます。 |
|
最大ハートビート間隔 |
8 分 |
ハートビート間隔は 8 分を超えてはなりません。 |
メッセージ送受信の制限
|
制限項目 |
制限 |
説明 |
|
メッセージサイズ |
64 KB |
このペイロードサイズ制限を超えるメッセージは破棄されます。 プラチナ版インスタンスはカスタマイズに対応しています。 カスタマイズを依頼するには、ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。 DingTalk グループ番号は 116015007918 です。 |
|
メッセージ保持期間 |
3 日間 |
ApsaraMQ for MQTT は、QoS が 1 で、cleanSession が false の場合にのみオフラインメッセージを保持します。 メッセージは最大 3 日間保持され、その後スクロール方式で自動的に削除されます。 QoS と cleanSession の詳細については、「用語集」をご参照ください。 Platinum Edition インスタンスはカスタマイズに対応しています。カスタマイズをご希望の場合は、ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。DingTalk グループ番号は 116015007918 です。 |
|
QoS と cleanSession |
QoS が 2 かつ cleanSession が false の構成はサポートされていません。 |
ApsaraMQ for MQTT でメッセージを送受信する場合:
|
|
トークン有効期間 |
30 日間 |
API 操作を呼び出してトークンをリクエストする際、ExpireTime の値が 30 日を超過すると、エラーは返されずにトークンが返されますが、実際の有効期間は 30 日に制限されます。 |
|
オフラインメッセージの可視時間 |
10 秒 |
サーバーがメッセージを初回プッシュした後、確認応答のタイムアウトまたは失敗を待って、メッセージがオフラインメッセージになるかどうかを判定します。この遅延は通常 5~10 秒です。 |
|
保存されるオフラインメッセージ数 |
1,000,000 |
サーバーは、インスタンスあたりのオフラインメッセージ数を 1,000,000 に制限します。上限を超えると、最も古いメッセージから順に削除されます。過剰なオフラインメッセージが生成されないよう、永続サブスクリプションのパターンは慎重に使用してください。 デフォルトの上限が要件を満たさない場合は、ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。DingTalk グループ番号は 116015007918 です。 |