TCPクライアントSDKを使用してメッセージを送受信する前に、ApsaraMQ for RocketMQコンソールで必要なリソースを作成する必要があります。 SDKを使用する場合は、リソース情報に基づいてリソースパラメーターを設定する必要があります。
始める前に
背景情報
ApsaraMQ for RocketMQは、TCPおよびHTTPプロトコルを介してメッセージを送受信するための複数のプログラミング言語用のSDKを提供します。 プロトコルごとに異なるグループを作成することを推奨します。 各プロトコルでのグループの使用制限については、「グループの管理」をご参照ください。
ネットワークアクセスの制限
ApsaraMQ for RocketMQを使用する前に、ネットワークアクセスの次の制限に注意してください。
トピックは、グループがトピックと同じインスタンスおよび同じリージョンに作成されている場合にのみ、グループ内のプロデューサーまたはコンシューマーがアクセスできます。 たとえば、中国 (杭州) リージョンのインスタンスaにトピックを作成した場合、そのトピックには、中国 (杭州) リージョンのインスタンスAに作成されたグループのプロデューサーまたはコンシューマーのみがアクセスできます。
TCPおよびHTTPクライアントのパブリックおよびプライベートエンドポイントは、すべてのリージョンで提供されます。 本番環境では、仮想プライベートクラウド (VPC) でApsaraMQ for RocketMQにアクセスすることを推奨します。 Cloud Enterprise Network (CEN) が利用できない状態で、ApsaraMQ for RocketMQにリージョンをまたいで、オンプレミスのデータセンターから、またはインターネット経由でアクセスする場合は、パブリックエンドポイントを使用してApsaraMQ for RocketMQインスタンスにアクセスできます。 パブリックエンドポイントを使用してApsaraMQ for RocketMQインスタンスにアクセスする場合、アウトバウンドインターネットトラフィックに対して課金されます。 詳細については、「インターネットトラフィックの課金」をご参照ください。
ApsaraMQ for RocketMQは、HTTPエンドポイントとTCPエンドポイントを提供します。 各タイプのエンドポイントは、同じプロトコルタイプのクライアントのみが使用できます。 たとえば、TCPクライアントSDKを使用している場合、コードでTCPエンドポイントのみを指定できます。
インスタンスの作成
ApsaraMQ for RocketMQでは、インスタンスはトピックとグループに関する情報を格納するために使用される仮想マシンです。 ApsaraMQ for RocketMQインスタンスを作成するには、次の手順を実行します。
ApsaraMQ for RocketMQコンソールにログインします。
左側のナビゲーションウィンドウで、インスタンスリスト をクリックします。
上部のナビゲーションバーで、中国 (杭州)などのリージョンを選択します。
インスタンスリストページでインスタンスの作成をクリックします。
Message Queue for Apache RocketMQ インスタンスの作成 パネルで、[インスタンスタイプ] 、[名前] 、および [説明] パラメーターを設定します。 次に、[OK] をクリックします。
Topic の作成
ApsaraMQ for RocketMQでは、トピックはメッセージの分類に使用される第1レベルの識別子です。 たとえば、Topic_Tradeという名前のトピックを作成して、トランザクションメッセージを識別できます。 次に、メッセージプロデューサーはTopic_Tradeにメッセージを発行でき、メッセージコンシューマーはTopic_Tradeにサブスクライブしてメッセージを消費できます。 トピックは次の要件を満たす必要があります。
インスタンス間でトピックを使用することはできません。 たとえば、インスタンスAで作成されたトピックAは、インスタンスBでは使用できません。
各トピック名はインスタンス上で一意である必要があります。
異なる種類のメッセージを送信するために、異なるトピックを作成することを推奨します。 たとえば、通常のメッセージにはトピックA、トランザクションメッセージにはトピックB、スケジュールされたメッセージと遅延されたメッセージにはトピックCを作成できます。
[インスタンスの詳細] ページの左側のナビゲーションウィンドウで、トピックの管理.
トピックの管理ページでトピックの作成をクリックします。
では、トピックの作成パネルは、構成します名前と説明パラメーターを設定し、メッセージタイプパラメーターを通常のメッセージをクリックし、OK.
説明次の例では、通常のメッセージが使用されます。 このセクションで説明する手順を実行して作成したトピックは、他のタイプのメッセージの送受信には使用できません。 各トピックは、特定のタイプのメッセージのみを送受信するために使用できます。 メッセージの種類については、「メッセージの種類」をご参照ください。
「グループの作成」
ApsaraMQ for RocketMQでは、同じタイプのプロデューサーまたはコンシューマーを識別するためにグループが使用されます。 グループは次の要件を満たす必要があります。
ApsaraMQ for RocketMQインスタンスに最大1,000個のグループを作成できます。 できるだけ早い機会に不要になったグループを再利用するか、グループを削除することをお勧めします。 グループの上限を引き上げたい場合は、ApsaraMQ for RocketMQテクニカルサポートまでお問い合わせください。
インスタンス間でグループを使用することはできません。 たとえば、インスタンスaで作成されたグループは、インスタンスBでは使用できません。
ApsaraMQ for RocketMQでは、コンシューマはHTTPまたはTCPプロトコルを介してメッセージを消費できます。 異なる消費者グループは異なるプロトコルを使用できます。 グループ内のすべてのコンシューマーに同じプロトコルを指定することを推奨します。
同じグループ内のコンシューマが異なるプロトコルでメッセージを消費する場合、メッセージ消費が失敗し、メッセージの重複またはメッセージの損失が発生する可能性があります。
グループ内のコンシューマがメッセージを消費するプロトコルを変更するには、約1〜2時間が必要です。
グループ内のコンシューマーがApsaraMQ for RocketMQコンソールに表示されているプロトコルとは異なるプロトコルでメッセージを消費すると、コンソールに表示されるデータが不正確になる可能性があります。 これは、グループのメッセージングには影響しません。 この場合、ApsaraMQ for RocketMQテクニカルサポートに連絡して、コンソールに表示されるプロトコルを、グループ内のコンシューマーが使用するプロトコルに変更できます。
コンシューマーごとにグループIDを指定する必要があります。 プロデューサーごとにグループIDを指定する必要はありません。
[インスタンスの詳細] ページの左側のナビゲーションウィンドウで、グループ管理.
グループ管理ページで、 を選択します。
[TCPプロトコルのグループの作成] パネルで、[グループID] および [説明] パラメーターを設定します。 次に、[OK] をクリックします。
エンドポイントの取得
ApsaraMQ for RocketMQコンソールでリソースを作成した後、インスタンスへのアクセスに使用できるエンドポイントを取得する必要があります。 メッセージを送受信する前に、プロデューサクライアントとコンシューマクライアントのエンドポイントを指定して、プロデューサとコンシューマが指定されたリージョンのインスタンスにアクセスできるようにする必要があります。
[インスタンスの詳細] ページの左側のナビゲーションウィンドウで、インスタンスの詳細 をクリックします。
インスタンスの詳細 ページの [TCPエンドポイント] セクションで、ポインターをエンドポイントの上に移動し、エンドポイントをクリックしてコピーします。
エンドポイントを使用する前に、次の項目に注意してください。
各タイプのエンドポイントは、同じプロトコルタイプのクライアントのみが使用できます。 たとえば、TCPクライアントSDKを使用してメッセージを送受信する場合は、ApsaraMQ For RocketMQインスタンスのTCPエンドポイントを使用してApsaraMQ for RocketMQブローカーにアクセスする必要があります。
TCPおよびHTTPクライアントのパブリックおよびプライベートエンドポイントは、すべてのリージョンで提供されます。 本番環境では、仮想プライベートクラウド (VPC) でApsaraMQ for RocketMQにアクセスすることを推奨します。 Cloud Enterprise Network (CEN) が利用できない状態で、ApsaraMQ for RocketMQにリージョンをまたいで、オンプレミスのデータセンターから、またはインターネット経由でアクセスする場合は、パブリックエンドポイントを使用してApsaraMQ for RocketMQインスタンスにアクセスできます。 パブリックエンドポイントを使用してApsaraMQ for RocketMQインスタンスにアクセスする場合、アウトバウンドインターネットトラフィックに対して課金されます。 詳細については、「インターネットトラフィックの課金」をご参照ください。
上記の操作を完了した後、サンプルコードを実行し、ApsaraMQ for RocketMQを使用してメッセージを送受信できます。