トピックは、ApsaraMQ for RocketMQ における最上位のメッセージカテゴリです。ApsaraMQ for RocketMQ は、パブリッシュ/サブスクライブモデルをサポートしています。プロデューサーはトピックにメッセージをパブリッシュし、コンシューマーはトピックをサブスクライブしてメッセージを受信します。ApsaraMQ for RocketMQ コンソールでは、トピックの作成、削除、更新、照会ができます。
注意事項
-
トピックはインスタンスをまたいで使用することはできません。たとえば、インスタンス A で作成されたトピックは、インスタンス B では使用できません。
-
トピックタイプはメッセージタイプと一致させる必要があります。たとえば、通常メッセージのトピックを作成する場合は、メッセージタイプとして通常メッセージを選択します。順序付きメッセージやトランザクションメッセージなどの他のタイプは選択しないでください。不一致があると、ノードの置換やインスタンスの移行時にスケジュール/遅延メッセージが失われるなどの問題が発生する可能性があります。
-
RocketMQ 5.x では、システムがトピックごとのキュー数を自動的に割り当てます。キュー数をカスタマイズまたは変更したり、コンソールや API でキュー数を表示したりすることはできません。
-
ApsaraMQ for RocketMQ は、グローバル順序トピックの直接作成をサポートしておらず、そのための特別なアプリケーションチャネルも提供していません。グローバル順序メッセージを実現するには、FIFO (パーティション順序) トピックを作成し、メッセージ送信時に同じ Sharding Key (たとえば、固定値) を設定します。これにより、すべてのメッセージが同じパーティションにルーティングされ、順序通りに処理されます。
-
ApsaraMQ for RocketMQ 5.x は、デッドレタートピックを含むトピックの自動作成をサポートしていません。コンソールまたは API で明示的にデッドレタートピックを作成する必要があります。これは、トピックの自動作成をサポートするオープンソース版の RocketMQ とは異なります。
課金
トピックの課金は、お使いの ApsaraMQ for RocketMQ インスタンスの課金方法によって異なります。
-
サブスクリプションおよび従量課金インスタンス
インスタンスの無料クォータを超えたトピックに対してのみ課金されます。無料クォータの範囲内であれば、料金は発生しません。詳細については、「トピック料金」をご参照ください。
-
サーバーレスインスタンス
トピック数に基づいて課金されます。詳細については、「サーバーレスインスタンスのトピック料金」をご参照ください。
トピックの作成
ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。 [インスタンス] ページで、管理するインスタンスの名前をクリックします。
-
左側のナビゲーションペインで、トピック をクリックします。
-
トピック ページで、トピックの作成 をクリックします。
-
トピックの作成 パネルで、名前 と [説明] を入力し、[メッセージタイプ] を選択して、[OK] をクリックします。
通常メッセージ、順序付きメッセージ、スケジュール/遅延メッセージ、トランザクションメッセージを選択できます。トピック名は 1~60 文字で、英字、数字、ハイフン (-)、アンダースコア (_) のみを含めることができます。
トピックの一覧表示
ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。 [インスタンス] ページで、管理するインスタンスの名前をクリックします。
-
左側のナビゲーションペインで、トピック をクリックします。
-
トピック ページで、現在のインスタンス内のすべてのトピックを表示できます。
トピック詳細の表示
-
トピック ページで、対象のトピックを見つけ、操作 列の 詳細 をクリックします。
-
トピックの詳細 ページで、トピックの詳細を表示できます。
トピックの編集
-
トピック ページで、対象のトピックを見つけ、操作 列の 詳細 をクリックします。
-
トピックの詳細 ページで、基本情報 タブをクリックします。次に、基本情報 セクションで 編集 をクリックします。
-
[トピックの更新] パネルで、トピックの説明を更新し、確定 をクリックします。
トピックの削除
-
トピックを削除すると、そのプロデューサーとコンシューマーは直ちに停止します。トピックのメタデータとメッセージデータは完全に削除され、復元できません。慎重に操作してください。
-
同じ名前の別のトピックを作成するには、5 分間待つ必要があります。
-
トピック ページで、対象のトピックを見つけ、操作 列の 詳細 をクリックします。
-
トピックの詳細 ページで、基本情報 タブをクリックします。次に、基本情報 セクションで [トピックの削除] をクリックします。
-
[注意] ダイアログボックスで、[OK] をクリックします。
クイックスタート
ApsaraMQ for RocketMQ コンソールで、通常メッセージの送信を迅速にテストできます。他のメッセージタイプを送受信するには、SDK を使用します。詳細については、「SDK リファレンスの概要」をご参照ください。
-
トピック ページで、[メッセージタイプ] が [通常メッセージ] のトピックを見つけ、操作 列の 詳細 をクリックします。
-
トピックの詳細 ページで、[クイックスタート] をクリックします。
-
[メッセージの作成と消費を開始] パネルで、次のいずれかの操作を実行します。
-
[コンソール]:
[メッセージ本文]、[メッセージキー]、[メッセージタグ] を入力し、[OK] をクリックします。
-
[SDK]:
さまざまな SDK のコードサンプルを表示し、指示に従ってメッセージを送受信します。
-
ダッシュボードの表示
ダッシュボードには、メッセージの生成とプロデューサークライアントの主要なメトリクスが表示されます。詳細については、「ダッシュボード」をご参照ください。
-
トピック ページで、対象のトピックを見つけ、操作 列の 詳細 をクリックします。
-
トピックの詳細 ページで、ダッシュボード タブをクリックします。
関連操作
トピックのインポートとエクスポートについては、「トピックのインポートとエクスポート」をご参照ください。
よくある質問
Q:Alibaba Cloud CLI を使用してトピックを作成する際に、InternalError または MessageType が欠落していることを示すメッセージが表示された場合はどうすればよいですか?
Alibaba Cloud CLI を使用してトピックを作成する場合、MessageType パラメーターは必須であり、デフォルト値はありません。有効な値: NORMAL、FIFO、DELAY、TRANSACTION。このパラメーターを省略すると、トピックの作成が失敗するか、InternalError が返されます。
Q:OnsTopicStatus API 呼び出しで BIZ_RESOURCE_NOT_EXISTS エラーが返された場合はどうすればよいですか?
このエラーは通常、指定されたインスタンスに対象のトピックが存在しないことを意味します。次のようにトラブルシューティングしてください。
-
API 呼び出しで使用されているインスタンス ID とトピック名が正しいことを確認してください。
-
指定されたインスタンスに対象のトピックが存在することを確認してください。
-
トピックはインスタンス間で共有できないことに注意してください。
Q:削除された RocketMQ トピックの操作記録と操作者を照会するにはどうすればよいですか?
ActionTrail コンソールにログインし、イベント名 OnsTopicDelete または ConsoleTopicDelete を検索します。リージョンでフィルタリングして、削除記録と操作者アカウント情報を表示します。
監査ログは最大 90 日間保持されます。90 日より古い記録は照会できません。
Q:複数のプロジェクトが同じ FIFO トピックのプロデューサーを使用している場合に、メッセージタイプの不一致エラーが発生した場合はどうすればよいですか?
このエラーは、複数プロジェクトの共存とは無関係です。根本的な原因は、トピックが FIFO (順序付きメッセージ) として設定されているにもかかわらず、クライアントが NORMAL (通常メッセージ) として識別されるメッセージを送信していることです。この問題を解決するには、次のようにします。
-
コード内のメッセージ定義と送信方法を確認してください。
-
正しい FIFO メッセージ送信 API を使用していることを確認してください。
-
メッセージ属性が FIFO の要件に準拠していることを確認してください。
-
トピックタイプとメッセージタイプが一致していることを確認してください。
関連ドキュメント
以下の API を呼び出してトピックを管理することもできます。