このトピックでは、ApsaraMQ for MQTT の特定のメトリックに関する制限と仕様について説明します。ApsaraMQ for MQTT を使用する場合、プログラムの例外を防ぐためにこれらの制限を超えないようにしてください。次の表に、これらの制限の詳細を示します。
ApsaraMQ for MQTT のプラチナエディションインスタンスを購入した場合、特定のメトリックをカスタマイズできます。これらのメトリックは、以下の表に記載されています。カスタマイズをリクエストするには、DingTalk グループ 116015007918 で ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。
インスタンスの制限
制限事項 | 制限 | 説明 |
インスタンス名 |
| インスタンスの作成時にカスタム名を指定することはできません。デフォルトでは、新しいインスタンスの名前はそのインスタンス ID と同じです。ApsaraMQ for MQTT コンソールで名前を変更できます。 |
単一インスタンスのメッセージング TPS | スロットリングは、購入した仕様に基づいています。ApsaraMQ for MQTT のメッセージング秒間トランザクション数 (TPS) が仕様の制限を超えると、オープンソースの MQTT クライアントやクラウドソフトウェア開発キット (SDK) などのクライアントで、切断、応答タイムアウト、メッセージ破棄などの問題が発生する可能性があります。この場合、信頼性の高いメッセージ配信は保証されません。 | 通常、単一の MQTT クライアントは大量のメッセージを処理せず、一部の SDK は高スループット向けに設計されていません。単一の MQTT クライアントのメッセージング TPS は 20 を超えないようにしてください。サーバー側のアプリケーションでより多くのメッセージ量が必要な場合は、ApsaraMQ for RocketMQ クライアントの使用を検討してください。 |
単一インスタンスのオンライン接続数 | スロットリングは、購入した仕様に基づいています。接続数が制限を超えると、新しい接続リクエストが拒否される場合があります。 | デフォルトでは、ApsaraMQ for MQTT はオンライン接続数のモニタリングアラームを提供します。必要に応じてモニタリングのしきい値を調整できます。 |
単一インスタンスのサブスクリプションリレーションシップ数 | サブスクリプション数が仕様の制限を超えると、新しいサブスクリプションが失敗する可能性があります。対応するクライアント接続が切断され、サブスクリプションリレーションシップの整合性が保証されなくなる場合があります。 | デフォルトでは、ApsaraMQ for MQTT はサブスクリプションリレーションシップ数のモニタリングアラームを提供します。必要に応じてモニタリングのしきい値を調整できます。 |
インスタンスエンドポイントに対応する IP アドレス | なし | この IP アドレスはいつでも変更される可能性があります。IP アドレスをハードコーディングしないでください。ApsaraMQ for MQTT プロダクトチームは、次のような状況で発生した問題について責任を負いません:
|
Topic の制限
制限事項 | 制限 | 説明 |
Topic 名 |
| ApsaraMQ for MQTT を使用してメッセージを送受信する場合、Topic の長さは指定された制限内である必要があります。そうでない場合、メッセージを送信したり、サブスクライブしたりすることはできません。 |
単一インスタンスの親 Topic 数 | 25 | デフォルトの制限が要件を満たさない場合は、DingTalk グループ 116015007918 で ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。 |
Topic のリージョン間での使用 | サポートされていません | ApsaraMQ for MQTT と ApsaraMQ for RocketMQ の間でデータ交換のルールを構成する場合、関連するリソースは同じリージョンにある必要があります。 |
クライアントの制限
制限 | 制限 | 説明 |
クライアント ID |
| ApsaraMQ for MQTT を使用してメッセージを送受信する場合、クライアント ID は長さの制限を超えてはなりません。そうでない場合、接続は切断されます。 |
グループ ID |
| ApsaraMQ for MQTT を使用してメッセージを送受信する場合、グループ ID の長さは指定された制限内である必要があります。そうでない場合、メッセージを送信したり、サブスクライブしたりすることはできません。 |
デバイス ID |
| ApsaraMQ for MQTT を使用してメッセージを送受信する場合、クライアント ID は長さの制限を超えてはなりません。そうでない場合、接続は切断されます。 |
クライアントがサブスクライブできる Topic 数 | 30 | 各クライアントは、同時に最大 30 の Topic をサブスクライブできます。この制限を超えると、新しいサブスクリプションリクエストは失敗します。プラチナエディションインスタンスはカスタマイズをサポートしています。カスタマイズをリクエストするには、DingTalk グループ 116015007918 で ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。 サブスクライブされた Topic の数を計算する場合、ワイルドカード文字を含むサブスクリプションは 1 つのサブスクリプションとしてカウントされます。同じ親 Topic の下にある異なる子 Topic へのサブスクリプションは、別々のサブスクリプションとしてカウントされます。たとえば、A/# は 1 つのサブスクリプションとしてカウントされ、A/# と A/a1/# は 2 つのサブスクリプションとしてカウントされます。 |
ワイルドカードサブスクリプションリレーションシップ数 | 各親 Topic につき、最大 100 のワイルドカードサブスクリプションリレーションシップが許可されます。 | サービスは、各親 Topic のアクティブなワイルドカードサブスクリプションリレーションシップの数を制限します。この制限を超えると、サービスは 100 のリレーションシップのみをロードします。これにより、一部のサブスクライブされたクライアントがメッセージを受信できなくなる可能性があります。リレーションシップの数を厳密に管理する必要があります。たとえば、同じ親 Topic A の場合、A/#、A/a1/#、および A/a2/# へのサブスクリプションは、3 つのサブスクリプションリレーションシップとしてカウントされます。 |
最大ハートビート間隔 | 8 分 | ApsaraMQ for MQTT でメッセージを送受信する場合、最大ハートビート間隔は 8 分です。 |
データフローとクライアントステータスルールに関する制限
制限 | 制限 | 説明 |
インスタンスあたりのルール数 | 100 | デフォルトの制限が要件を満たさない場合は、DingTalk グループ 116015007918 で ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。 |
ルールの重複排除 | 同じ内部リソースに対して、各タイプのルールを 1 つだけ作成できます。 | たとえば、グループ ID に対してはオンライン/オフライン通知ルールを 1 つだけ作成でき、MQTT Topic に対してはデータインバウンドルールとデータアウトバウンドルールを 1 つずつしか作成できません。 |
リージョンの制限 | リージョンをまたいでルールを作成することはできません。ルールのデータソースとデータ宛先のインスタンスは、同じリージョンにある必要があります。 | たとえば、データアウトバウンドルールを作成し、ソースの ApsaraMQ for MQTT インスタンスが中国 (杭州) リージョンにある場合、データ宛先として中国 (杭州) リージョンにある ApsaraMQ for RocketMQ インスタンスのみを選択できます。 |
ApsaraMQ for MQTT インスタンスバージョン | バージョン 3.x.x の ApsaraMQ for MQTT インスタンスのみがこの機能をサポートします。 | バージョン 3.x.x の ApsaraMQ for MQTT インスタンスのみが購入可能です。 |
ApsaraMQ for RocketMQ インスタンスバージョン | 4.0 シリーズのインスタンスのみがサポートされています。 | ApsaraMQ for MQTT と ApsaraMQ for RocketMQ がデータインバウンドまたはデータアウトバウンドルールを介してデータを交換する場合、ApsaraMQ for RocketMQ 4.0 シリーズのインスタンスのみがこれらのルールをサポートします。5.0 シリーズのインスタンスはサポートされていません。 |
メッセージの送受信に関する制限
ApsaraMQ for MQTT は、遺言メッセージまたは保持メッセージをサポートしていません。
制限 | 制限 | 説明 |
メッセージサイズ | 64 KB | メッセージペイロードはこの制限を超えてはなりません。そうでない場合、メッセージは破棄されます。 プラチナエディションインスタンスはカスタマイズをサポートしています。カスタマイズをリクエストするには、DingTalk グループ 116015007918 で ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。 |
メッセージの保持期間 | 3 日間 | ApsaraMQ for MQTT は、QoS=1 かつ cleanSession=false の場合にのみオフラインメッセージを保持します。メッセージは最大 3 日間保持され、この期間が過ぎると自動スクロールによって自動的に削除されます。Quality of Service (QoS) と cleanSession の詳細については、「用語集」をご参照ください。 プラチナエディションインスタンスはカスタマイズをサポートしています。カスタマイズをリクエストするには、DingTalk グループ 116015007918 で ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。 |
QoS と cleanSession |
| ApsaraMQ for MQTT を使用してメッセージを送受信する場合:
|
トークンの有効期間 | 30 日間 | トークンを申請する操作を呼び出すときに、ExpireTime の値が 30 日を超えていても、操作は成功し、エラーなしでトークンが返されます。ただし、実際の有効期間は 30 日間のままです。 |
オフラインメッセージの可視時間 | 10 秒 | サービスが初めてメッセージをプッシュした後、メッセージがオフラインメッセージに変換されるかどうかを確認するために、タイムアウトまたは失敗を待つ必要があります。対応するレイテンシは通常 5~10 秒です。 |
保存されているオフラインメッセージの数 | 100 万 | サービスは、各インスタンスに保存されるオフラインメッセージの数を制限します。この制限を超えると、サービスは最も古いメッセージからクリアを開始します。したがって、永続化サブスクリプションパターンを合理的に使用して、役に立たないオフラインメッセージが過剰に生成されないようにしてください。 デフォルトの制限が要件を満たさない場合は、DingTalk グループ 116015007918 で ApsaraMQ for MQTT のテクニカルサポートにお問い合わせください。 |
メッセージプッシュのリトライ回数 |
| コンシューマーがメッセージを受信できなかった場合、または消費に失敗した場合に、ApsaraMQ for MQTT サービスがメッセージのプッシュをリトライする最大回数。 |
クラウド API の制限
クラウド API 呼び出しの秒間クエリ数 (QPS) の制限に関する情報については、「QPS 制限」をご参照ください。