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

ApsaraMQ for RocketMQ:使用上の注意

最終更新日:Jul 09, 2024

複数のプログラミング言語のHTTPクライアントSDKを使用して、インターネット経由でApsaraMQ for RocketMQにアクセスできます。 このトピックでは、複数のプログラミング言語のHTTPクライアントSDKの使用方法について説明します。

複数のプログラミング言語のSDK

ApsaraMQ for RocketMQはRESTful HTTP通信をサポートし、7つのプログラミング言語のSDKを提供します。 TCPクライアントSDKでサポートされている機能に合わせて、HTTPクライアントSDK用にさらに機能が開発されています。 HTTPクライアントSDKとTCPクライアントSDKの機能の違いについては、次のトピックを参照してください。

注意事項

  • ロングポーリング方式またはショートポーリング方式を使用して、ApsaraMQ for RocketMQブローカーでHTTP経由で使用するメッセージを取得できます。

    • ロングポーリング: コンシューマーはブローカーにリクエストを送信し、特定のトピックのメッセージを取得します。 トピックにメッセージが存在しない場合、ブローカーは要求を中断し、メッセージがトピックで生成されるか、または長いポーリングの指定された期間が経過するまで応答を返します。

    • ショートポーリング: トピックにメッセージが存在しない場合、ブローカーはすぐに応答を返します。 クライアントは、応答を受信した後、サブスクリプション要求を繰り返し開始する。

    次の項目は、設定方法を説明します。

    • ロングポーリング: サブスクリプションリクエストを開始するときは、waitSecondsパラメーターを0に設定するか、パラメーターを空のままにします。

    • ショートポーリング: サブスクリプション要求を開始するときは、waitSecondsパラメーターを0より大きい値に設定します。 最大値は30秒です。

    詳細については、「メッセージの使用操作」をご参照ください。

    短いポーリングモードを使用していて、トピックでメッセージが生成されない場合、多数の無効なリクエストが生成される可能性があります。 これらのリクエストに対してAPI呼び出し料金が請求されます。 無効なサブスクリプションリクエストの数を減らし、コストを節約するために、ロングポーリングモードを使用し、ロングポーリングの待ち時間を増やすことを推奨します。 API呼び出し料金の計算方法については、「API呼び出し料金」をご参照ください。

  • HTTP SDKを使用して、ApsaraMQ for RocketMQインスタンスにアクセスできます。 これはApsaraMQ forRocketMQによって提供される拡張機能です。 HTTP SDKを使用して、自己管理型Apache RocketMQクラスターにアクセスすることはできません。

  • アクセスするリソースが、使用するHTTPエンドポイントと同じリージョンにあることを確認します。

    たとえば、ApsaraMQ For RocketMQインスタンスが中国 (杭州) リージョンにデプロイされている場合、中国 (杭州) リージョンのエンドポイントのみを使用してインスタンスにアクセスできます。 次のシナリオでインスタンスにアクセスできます。

    • クライアントが中国 (杭州) リージョンにある場合は、インスタンスのプライベートHTTPエンドポイントを使用してインスタンスにアクセスすることを推奨します。

    • クライアントが中国 (杭州) リージョンにない場合は、クライアントがインターネットに接続し、インスタンスのパブリックHTTPエンドポイントを使用してインスタンスにアクセスできることを確認してください。

  • メッセージは、TCPクライアントとHTTPクライアントの間で送信できます。 HTTPはXMLシリアル化を使用するため、属性、コンテンツ、タグ、キーなどのメッセージ情報はXMLルールに準拠する必要があります。

    説明

    XMLルールの詳細については、「XML構文」をご参照ください。 サードパーティのツールxml_validatorを使用して、ビジネス要件に基づいてメッセージがXMLルールに準拠しているかどうかを確認することもできます。 xml_validatorの詳細については、「XML Validator」をご参照ください。

    XMLルールに準拠していない文字がメッセージに含まれている場合、次のエラーが発生する可能性があります。

    • HTTP経由でメッセージを送信できません。

    • TCPメッセージはHTTP経由で消費されません。

    Base64を使用して、XMLに準拠していないメッセージをエンコードまたはデコードできます。