このガイドでは、Dubbo 用のセルフマネージド ZooKeeper レジストリから MSE ZooKeeper レジストリへ移行する方法を説明します。
前提条件
-
MSE Sync ツールをデプロイ済みであること。詳細については、「MSE Sync 移行ソリューション」をご参照ください。
-
MSE ZooKeeper クラスターを作成済みであること。詳細については、「ZooKeeper エンジンの作成」をご参照ください。
制限事項
-
MSE Sync ツールに障害が発生すると、同期サービスが中断される可能性があります。高可用性を確保するため、このツールには少なくとも 2 つのノードをデプロイすることを推奨します。移行を開始した後は、すべての手順を速やかに完了させてください。
-
ソース ZooKeeper クラスター、MSE Sync ツール、宛先 MSE ZooKeeper クラスター間のネットワーク接続が確保されていることを確認してください。
仕様
|
Dubbo サービス |
プロバイダー |
コンシューマー |
最小インスタンス仕様 |
最小ツール仕様 |
|
0~1,000 |
0~3,000 |
0~9,000 |
2 コア、4 GB |
2 コア、4 GB |
|
1,000~4,000 |
0~12,000 |
0~36,000 |
4 コア、8 GB |
4 コア、8 GB |
|
4,000~7,000 |
0~21,000 |
0~63,000 |
8 コア、16 GB |
4 コア、8 GB |
|
7,000~10,000 |
0~30,000 |
0~90,000 |
16 コア、32 GB |
8 コア、16 GB |
-
最小インスタンス仕様:本番環境では少なくとも 3 つのノード、ミッションクリティカルな環境では少なくとも 5 つのノードをデプロイすることを推奨します。
-
最小ツール仕様:高可用性を確保するため、少なくとも 2 つのノードをデプロイすることを推奨します。
操作手順
次の図は、移行用のデプロイアーキテクチャを示しています。
手順1:同期タスクの作成
-
MSE Sync ツールの左側メニューで、クラスターの設定 をクリックし、次に [Add Cluster] をクリックします。[Add Cluster] ダイアログボックスで、ソース ZooKeeper クラスターを設定し、OK をクリックします。
パラメーター
説明
[クラスター名]
クラスターのカスタム名を入力します。
[クラスタータイプ]
[ZK]
[Cluster IP address list]
ソース ZooKeeper クラスター内の各ノードの IP アドレスとポートを 1 行に 1 つずつ入力します。デフォルトポートは 2181 です。例:
127.0.0.1:2181 127.0.0.2:2181 127.0.0.3:2181ソースクラスターが負荷分散に Server Load Balancer (SLB) インスタンスを使用している場合は、[Cluster IP address list] フィールドに SLB インスタンスの IP アドレスとポートを入力します。
-
もう一度 [Add Cluster] をクリックして、宛先 ZooKeeper クラスターを追加します。
-
[クラスタータイプ]:[ZK] を選択します。
-
[Cluster IP address list]:宛先 MSE ZooKeeper クラスターのエンドポイントとサービスポートを入力します。例: mse-8b7de****-p.zk.mse.aliyuncs.com:2181。
[Add Cluster] をクリックし、ダイアログボックスで [Cluster Name] (例: MSE zk) を入力してから、OK をクリックします。
-
-
左側メニューで、同期タスク をクリックし、次に [New Sync] をクリックして、移行する Dubbo サービスを追加します。
-
[同期方式]:[Bidirectional] を選択します。これにより、ソースクラスターと宛先クラスター間の変更を同期する双方向同期が有効になります。
-
[同期タイプ]:サービス情報 を選択します。MSE Sync は、ソースクラスター内のすべてのサービスを自動的にリストアップします。必要なサービスを選択してください。
-
[グループ名]:複数のサービスを同期する場合は、このパラメーターは空のままにします。それ以外の場合は、特定の Dubbo グループ名を入力します。
[ソースクラスター]ドロップダウンリストから [Source ZK] を選択し、[ターゲットクラスター]ドロップダウンリストから [MSE zk] を選択し、サービスリストから [com.example.IHelloService] を選択して、OK をクリックします。
-
-
OK をクリックします。
移行ツールの [Service Synchronization] ページで、同期されたサービスの名前を確認します。
タスクが追加されると、[Synchronization Tasks] リストで作成された同期タスク (ソースクラスター、ターゲットクラスター、タスクの進捗状況、タスクタイプなど) を表示できます。タスクの進捗状況が [Synchronization Complete (Listening)] と表示されると、データは同期され、ソースの変更が継続的に監視されている状態になります。
手順2:同期結果の検証
[MSE コンソール] にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、インスタンスの名前をクリックします。
-
左側メニューで、 を選択します。サービスがデフォルトの Dubbo パス配下にリストされていることを確認します。
手順3:Dubbo クライアントの移行
-
Dubbo クライアントの設定でエンドポイントを変更します。
Dubbo クライアントの XML 設定ファイルを見つけます。
dubbo:registry address属性で、セルフマネージド ZooKeeper のエンドポイントを MSE ZooKeeper レジストリのエンドポイントに置き換えます。変更前:
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>変更後:
<dubbo:registry address="zookeeper://mse-8b7de****-p.zk.mse.aliyuncs.com:2181"/> -
クライアントアプリケーションを再起動します。これにより、クライアントが MSE ZooKeeper レジストリに接続されるようになります。
説明サービスの中断を避けるため、クライアントをバッチで再起動することを推奨します。すべてのクライアントが再起動された後、クライアントがソースクラスターから切断されていることを確認してください。
手順4:ソースクラスターの廃止
-
ソース ZooKeeper クラスターを停止します。
-
MSE Sync ツールを停止します。