ApsaraMQ for RocketMQは、複数のプログラミング言語のTCPクライアントSDKとHTTPクライアントSDKをサポートしています。 このトピックでは、TCPクライアントSDKとHTTPクライアントSDKの違いについて説明します。 このトピックでは、TCPクライアントSDKおよびHTTPクライアントSDKの使用方法についても説明します。
互換性の説明
次の表は、ApsaraMQ for RocketMQブローカーバージョンとクライアントSDKバージョンの互換性を示しています。
インスタンスバージョン | クライアントバージョン | 互換性 | 制限事項 |
ApsaraMQ for RocketMQ 5.xインスタンス | 互換性あり | ApsaraMQ for RocketMQ 5.xインスタンスのすべての機能がサポートされています。 | |
互換性あり | メッセージング機能がサポートされています。 メッセージトレースデータと特定のメトリックは表示できません。 | ||
Apache RocketMQ TCPクライアント1.x SDK 重要 ApsaraMQ for RocketMQ 5.xインスタンスには、Apache RocketMQ TCPクライアント2.x SDKを使用してアクセスすることはできません。 | 互換性あり | メッセージング機能がサポートされています。 メッセージトレースデータと特定のメトリックは表示できません。 | |
ApsaraMQ for RocketMQ HTTPクライアントSDK | 互換性なし | ApsaraMQ for RocketMQ 5.x SDKはHTTPプロトコルをサポートしていません。 | |
ApsaraMQ for RocketMQ 4.xインスタンス | ApsaraMQ for RocketMQ 5倍SDKs | 互換性なし | ApsaraMQ for RocketMQ 5.xインスタンスに対応するSDKを使用してApsaraMQ for RocketMQ 4.xインスタンスにアクセスすることはできません。 |
互換性あり | ApsaraMQ for RocketMQ 4.xインスタンスのすべての機能がサポートされています。 | ||
互換性あり | |||
互換性あり |
TCP
オープンソースSDKは、オープンソースApache RocketMQからApsaraMQ for RocketMQにデータを移行し、コードを変更しない場合にのみ使用されます。 他のシナリオでは、ApsaraMQ for RocketMQが提供するCommercial Edition SDKを使用することを推奨します。 オープンソースSDKと比較して、Commercial Edition SDKはより多くの機能とより高い安定性を提供します。
Commercial Edition TCP client SDKs (ONS 1.x and 2.x SDKs)
C/C++ SDK
HTTP
Commercial Edition HTTP client SDKs (recommended for multiple programming languages)
Python SDK
Node.js SDK
TCPクライアントSDKsとHTTPクライアントSDKsの比較
TCPクライアントSDKsとHTTPクライアントSDKsにはさまざまな機能があります。 ビジネス要件に基づいてプロトコルタイプを選択することを推奨します。
Item | TCP client SDK | HTTP client SDK |
Suggestions | TCPクライアントSDKsは、優先オプションとして推奨されます。 次の項目では、TCPクライアントSDKsの利点について説明します。
| 代替オプションとしてHTTPクライアントSDKsを推奨します。 以下の項目は、HTTPクライアントSDKsの利点を説明しています。
|
Usage notes
各タイプのエンドポイントは、同じプロトコルタイプのクライアントのみが使用できます。 たとえば、TCPクライアントSDKを使用してメッセージを送受信する場合は、ApsaraMQ for RocketMQインスタンスのTCPエンドポイントを使用して ApsaraMQ for RocketMQ ブローカーにアクセスする必要があります。
ApsaraMQ for RocketMQ では、HTTPクライアントとTCPクライアント用に作成されたグループを使用してメッセージを送受信できます。 異なるタイプのクライアントに対して異なるグループを作成する必要があります。 たとえば、TCPクライアントSDKを使用してメッセージを送受信する場合は、TCPクライアント用にのみ作成されたグループを使用する必要があります。
メッセージは、TCPクライアントとHTTPクライアントの間で送信できます。 HTTPはXMLシリアル化を使用するため、属性、コンテンツ、タグ、キーなどのメッセージ情報はXML (Extensible Markup Language) ルールに準拠する必要があります。 そうしないと、メッセージの送信または消費に失敗する可能性があります。
You can use Base64 to encode or decode messages that do not comply with XML rules.
説明XMLルールの詳細については、 「 Extensible Markup Language (XML) 1.0 (Fifth Edition).」をご参照ください。サードパーティのツールxml_validatorを使用して、ビジネス要件に基づいてメッセージがXMLルールに準拠しているかどうかを確認することもできます。 Xml_validatorの詳細については、「 XML Validator」をご参照ください。
TCPおよびHTTPクライアント用のパブリックエンドポイントとプライベートエンドポイントは、すべてのリージョンで提供されます。 本番環境では、仮想プライベートクラウド (VPC) でApsaraMQ for RocketMQにアクセスすることを推奨します。 Cloud Enterprise Network (CEN) が利用できないときに、オンプレミスデータセンターから、またはインターネットを介して、複数のリージョンでApsaraMQ for RocketMQにアクセスする場合は、パブリックエンドポイントを使用して、ApsaraMQ for RocketMQインスタンスにアクセスできます。 パブリックエンドポイントを使用してApsaraMQ for RocketMQインスタンスにアクセスする場合、アウトバウンドインターネットトラフィックに対して課金されます。 詳細については、「 Billing of Internet traffic」をご参照ください。