1. シナリオ
このソリューションは、セルフマネージド RabbitMQ クラスターを ApsaraMQ for RabbitMQ に移行するためのものです。
移行タイプ: メタデータ移行。
2. セルフマネージド RabbitMQ に対する ApsaraMQ for RabbitMQ の利点
項目 | ApsaraMQ for RabbitMQ | セルフマネージド RabbitMQ |
最大クラスター TPS | 無制限。ApsaraMQ for RabbitMQ は、水平スケーリングをサポートする分散型のマスターレスクラスターアーキテクチャを使用します。 | マシンのパフォーマンスによって制限されます。スケールアウトはデバイス仕様のアップグレードによって実現されますが、それには独自の制限があります。 |
単一キューの最大 TPS | 無制限。ApsaraMQ for RabbitMQ は単一キューの水平スケーリングをサポートしており、同時実行性に関連するパフォーマンスや容量の制限はありません。 | 制限あり。単一キューの最大パフォーマンスは、単一ノードのパフォーマンスによって制限されます。 |
接続数 | 無制限。サポートされる接続数はクラスターとともにスケーリングします。接続数が増加してもパフォーマンスには影響しません。 | 制限あり。接続数は単一マシンのパフォーマンスによって制限され、スケールアウトできません。 |
スケジュールされたメッセージ | 秒レベルの精度、高性能、そしてすぐに使用できます。 | 使用が複雑です。 |
サービスの可用性とデータの信頼性 |
| ミラーキューまたはクォーラムキューを使用して実現されます。これはスプリットブレインの問題を容易に引き起こす可能性があります。 |
メッセージ蓄積容量 | 大量のメッセージが蓄積されても高いパフォーマンスを維持します。クラスターサービスは影響を受けません。 | 大量のメッセージが蓄積されると、メモリの問題が発生しやすくなり、サービスのダウンタイムにつながる可能性があります。 |
弾力性 |
| クラスターの最大同時容量は単一のマシンによって制限されます。スケールアウトには、デバイス仕様のアップグレードまたはクラスターの分割が必要です。 |
検査システム | デッドロックやダウンタイムなどの問題を自動的に発見して修正します。 | なし。 |
3. 移行ツール
1. ApsaraMQ for RabbitMQ コンソール移行ツール
ApsaraMQ for RabbitMQ コンソール移行ツールを使用すると、移行タスクを作成することで、オープンソース RabbitMQ インスタンスからメタデータファイルをインポートできます。このツールは ALL および Vhost インポートモードをサポートし、ターゲットインスタンスに対応する Vhost、キュー、エクスチェンジ、およびバインディングを作成します。
移行ツールはメタデータ移行のみをサポートし、メッセージデータの移行はサポートしていません。
4. 移行計画
1. 移行ワークフロー
インスタンスの作成: Alibaba Cloud で必要な仕様の ApsaraMQ for RabbitMQ インスタンスを作成します。
データ移行:
メタデータ移行: ApsaraMQ for RabbitMQ コンソール移行ツールを使用してメタデータを移行します。
データ検証:
メタデータ検証: 移行前後の vhost とキューの数を確認して、メタデータの一貫性を検証します。
2. データ移行計画
2.1. ApsaraMQ for RabbitMQ コンソール移行ツールを使用したメタデータの移行
仕組み
メタデータ移行には、オープンソース RabbitMQ クラスターからメタデータをエクスポートし、それを ApsaraMQ for RabbitMQ インスタンスにインポートする作業が含まれます。ApsaraMQ for RabbitMQ は、インポートされたメタデータに基づいて、ターゲットインスタンスに対応する Vhost、キュー、エクスチェンジ、およびバインディングを作成します。
前提条件
セルフマネージドのソースインスタンスで RabbitMQ 管理プラグインを有効にする必要があります。
移行先として機能する ApsaraMQ for RabbitMQ インスタンスと Vhost を作成します。
リスクと注意点
セルフマネージド RabbitMQ と ApsaraMQ for RabbitMQ の権限コントロールメカニズムの違いにより、次のメタデータタイプはインポートがサポートされていません: rabbit_version、users、permissions、parameters、global_parameters、および policies。これらはインポート中に自動的に無視されます。
3. データ検証計画
3.1. メタデータ検証
移行前後の vhost とキューの数を確認して、メタデータの一貫性を検証します。
5. 移行手順
1. ApsaraMQ for RabbitMQ コンソール移行ツールを使用したメタデータの移行
1.1. オープンソース RabbitMQ からのメタデータのエクスポート
ブラウザでオープンソース RabbitMQ コンソールを開きます。コンソールの URL は http://{RabbitMQ IP アドレス}:1567 です。
ログインページで、[ユーザー名] テキストボックスにユーザー名を入力し、[パスワード] テキストボックスにパスワードを入力します。次に、[ログイン] をクリックします。
[概要] タブで、[定義のエクスポート] をクリックします。[仮想ホスト] ドロップダウンリストから [すべて] または特定の Vhost を選択し、[ブローカー定義のダウンロード] をクリックします。[仮想ホスト] リストのオプションは次のとおりです:
すべて: すべての Vhost のメタデータをエクスポートします。
Vhost 名: 特定の Vhost のメタデータをエクスポートします。
ダウンロードしたメタデータファイルをコンピューターに保存します。
1.2. ApsaraMQ for RabbitMQ へのメタデータのインポート
ApsaraMQ for RabbitMQ コンソールにログインします。左側のナビゲーションウィンドウで、[クラウド移行] をクリックします。
[クラウド移行] ページのトップメニューバーで、リージョンを選択します。次に、ページの左上隅にある [タスクの作成] をクリックします。
[タスクの作成] パネルで、パラメーターを設定し、[OK] をクリックします。
パラメーター | 説明 | 例 |
インスタンス | メタデータを移行するターゲットインスタンスの名前。 | amqp-cn-7mz2cjgk**** |
インポートモード |
| Vhost |
Vhost | メタデータを移行する ApsaraMQ for RabbitMQ インスタンスの Vhost。このパラメーターは、[インポートモード] を Vhost に設定した場合に表示されます。 | test-vhost**** |
メタデータ | 移行するメタデータファイル。[ファイルの選択] をクリックし、ローカルのメタデータファイルを選択して、[開く] をクリックします。 注 メタデータファイルは 20 MB を超えることはできません。 | rabbit_mq-amqp-load-test011122063**** |
タスクを作成した後、移行されたメタデータの詳細とタスクの失敗理由を表示できます。
正常にインポートされたメタデータの詳細を表示する
[クラウド移行] ページで、ターゲットタスクを見つけ、[ターゲットインスタンス] 列のインスタンス名をクリックします。
左側のナビゲーションウィンドウで、[Vhost リスト] をクリックします。ターゲット Vhost を見つけ、[アクション] 列の [詳細] をクリックして Vhost の詳細を表示します。詳細については、「Vhost 管理」をご参照ください。
失敗したタスクの詳細を表示する
[クラウド移行] ページで、ターゲットタスクを見つけ、[アクション] 列の [詳細] をクリックします。または、ターゲットインスタンスを見つけ、[同期済みメタデータ数] 列の番号をクリックします。
[移行詳細] ページで、[Vhost]、[Exchange]、[Queue]、または [Binding] タブをクリックして、失敗の理由を表示します。
6. データ検証手順
メタデータ検証
ApsaraMQ for RabbitMQ コンソールで、vhost とキューの数を確認します。これらの数値をソース RabbitMQ コンソールの対応する数値と比較して、メタデータに一貫性があることを確認します。
7. 移行に関する注意点
セルフマネージド RabbitMQ と ApsaraMQ for RabbitMQ の権限コントロールメカニズムの違いにより、次のメタデータタイプはインポートがサポートされていません: rabbit_version、users、permissions、parameters、global_parameters、および policies。これらはインポート中に自動的に無視されます。
セルフマネージド RabbitMQ のキュー名、エクスチェンジ名、およびバインディングには特殊文字を含めることができます。ApsaraMQ for RabbitMQ インスタンスは、スペース、$, #、% などの特殊文字をサポートしていません。
ApsaraMQ for RabbitMQ インスタンスはプラグインをサポートしていません。セルフマネージド RabbitMQ から移行する前に、インストールされているプラグインの機能を評価し、必要に応じて代替ソリューションを見つけてください。たとえば、セルフマネージド RabbitMQ はプラグインを介して遅延メッセージをサポートします。ApsaraMQ for RabbitMQ インスタンスは、プラグインではなくネイティブ機能として遅延メッセージをサポートします。
セルフマネージド RabbitMQ では、デフォルトの最大メッセージ遅延は 30 分で、その後メッセージは削除されます。ApsaraMQ for RabbitMQ インスタンスでは、デフォルトは 5 分です。この時間はインスタンスの仕様によって異なります。移行前に、オンプレミス環境の最大遅延が ApsaraMQ for RabbitMQ インスタンスに設定された遅延と一致することを確認してください。
ApsaraMQ for RabbitMQ インスタンスは、障害またはタイムアウト後のメッセージの再配信をサポートします。移行後、この機能が重複メッセージ配信をトリガーしてメッセージの急増を防ぐかどうかを確認してください。
ApsaraMQ for RabbitMQ インスタンスのユーザーパスワードは、AccessKey ペア (AK/SK) からのみ再生成できます。既存のユーザーパスワードと一致するように設定することはできません。