自己管理 Nacos と比較して、Microservices Engine (MSE) Nacos は、構成の暗号化、復号、プッシュ追跡などの特徴を提供します。MSE Nacos は、パフォーマンス専有型で可用性が高く、ユーザーフレンドリなサービスであり、O&M コストを大幅に削減できます。このトピックでは、自己管理のオープンソース Nacos 構成センターから MSE Nacos 構成センターに移行する方法について説明します。
前提条件
MSE Nacos インスタンスが作成されていること。詳細については、「Nacos エンジンを作成する」をご参照ください。
必要な名前空間が作成されていること。詳細については、「名前空間を作成する」をご参照ください。
説明自己管理 Nacos インスタンスで複数の名前空間を使用する場合は、スムーズな移行を確実にするために、MSE Nacos に同じ ID と名前で対応する名前空間を作成します。
ステップ 1: 自己管理 Nacos から MSE Nacos に構成を移行する
方法 1: インポートおよびエクスポート機能を使用して構成を移行する
各名前空間の構成を個別にインポートおよびエクスポートします。
自己管理のオープンソース Nacos コンソールから構成をエクスポートします。
自己管理のオープンソース Nacos コンソールにログインします。
[構成リスト] ページで、ターゲット構成を選択し、リストの下にある [エクスポート] をクリックしてから、[構成のエクスポート] ダイアログボックスで [エクスポート] をクリックします。
エクスポートされた構成ファイルを保存します。
構成を MSE コンソールにインポートします。
MSE コンソールにログインします。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。インスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、Configuration Management > Configurations を選択します。
[構成リスト] ページで、ターゲットの名前空間を選択し、[構成のインポート] をクリックします。
[構成のインポート] ダイアログボックスで、インポートポリシーを設定します。同じ名前の構成が存在する場合、[インポートの停止]、[スキップ]、または [上書き] を選択できます。自己管理 Nacos コンソールからエクスポートした構成ファイルをアップロードし、[インポート] をクリックします。

両側で構成を更新します。
説明スムーズな移行を確実にするために、アプリケーションを移行する前に、自己管理 Nacos と MSE Nacos の両方の構成センターで構成を更新してください。SDK を使用して構成を更新する場合は、プログラムでデュアルライトを実装する必要があります。コンソールで構成を更新する場合は、両方のコンソールで手動で更新を実行する必要があります。
方法 2: MSE Sync を使用して構成のホットマイグレーションのための移行タスクを構成する
同期ツールのデプロイ方法の詳細については、「MSE Sync 移行ソリューション」をご参照ください。
MSE Sync がデプロイされた後、MSE コンソールにログインします。左側のナビゲーションウィンドウで、[マイクロサービスレジストリ] > [クラウド移行] を選択します。[クラウド移行] ページで、[構成の移行] をクリックします。

[構成の移行] ページで、[次へ] をクリックします。[構成の作成] ステップで、[ソースインスタンスタイプ] を [Nacos] に、[同期タイプ] を [構成同期] に設定します。[ソースインスタンスノードアドレス] には、ソースインスタンスのノード IP アドレスとポートを入力します。[ターゲットインスタンス] には、宛先インスタンスを選択します。次に、[次へ] をクリックします。[移行の実装] ステップで、[移行構成のダウンロードと保存] をクリックします。ダウンロードした構成ファイルを MSE Sync にインポートして、ソースクラスターからの構成のホット同期を有効にします。

構成同期は、カナリアリリースの構成をサポートしていません。ソースまたは宛先クラスターのカナリアリリースの範囲に同期ツールが含まれている場合、ツールはカナリア構成を通常の構成としてピアクラスターに同期します。
ソースクラスターと宛先クラスターで同時に構成を変更しないでください。
ステップ 2: アプリケーションのビジネスパラメーターを置き換える
アプリケーションの種類に応じて、次の手順に従ってビジネスパラメーターを置き換えます:
Spring Cloud Alibaba アプリケーションの移行
アプリケーションが Spring Cloud Alibaba アプリケーションであるかどうかを特定します。
pom.xml ファイルに次の依存関係がある場合、アプリケーションは Spring Cloud Alibaba アプリケーションです。
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>アプリケーションが Spring Cloud Alibaba アプリケーションの場合は、その bootstrap.properties 構成ファイルを変更します。
{MSE パブリック/プライベートエンドポイント} を宛先の MSE Nacos インスタンスのエンドポイントに置き換えます。エンドポイントは、インスタンスの基本情報ページで確認できます。
spring.cloud.nacos.config.server-addr=${MSE public/private endpoint}次の構成では、名前空間を MSE の対応する名前空間に置き換えます。名前空間 ID が同じ場合は、変更は必要ありません。MSE のデフォルトの名前空間は空なので、このパラメーターは空白のままにできます。カスタム名前空間を使用している場合は、Nacos インスタンスの [名前空間] ページでその ID を確認できます。
デプロイメントにパブリック IP アドレスを使用する場合は、接続性を確保するためにクライアント IP アドレスをホワイトリストに追加する必要があります。詳細については、「ホワイトリストを設定する」をご参照ください。
ホワイトリストが空の場合、すべての IP アドレスがアプリケーションにアクセスできます。
Java アプリケーションの移行
アプリケーションが Nacos SDK for Java を使用しているかどうかを特定します。
pom.xml ファイルに次の依存関係がある場合、アプリケーションは Nacos SDK for Java を使用しています。
<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> </dependency>アプリケーションが Nacos SDK for Java を使用している場合は、次のコードを変更します。${MSE endpoint} を MSE エンドポイントに、${namespaceId} を MSE 名前空間 ID に置き換えます。デフォルトの名前空間を使用する場合、名前空間 ID は空のままにできます。名前空間 ID がソースと同じ場合は、変更は必要ありません。コードを変更した後、アプリケーションを再デプロイします。
properties.put("serverAddr", "${MSE endpoint}"); properties.put("namespace", "${namespaceId}");
nacos-spring-boot アプリケーションの移行
アプリケーションが nacos-spring-boot アプリケーションの場合は、その application.properties 構成ファイルを変更します。
${MSE endpoint} を MSE エンドポイントに置き換えます。
nacos.config.server-addr=${MSE endpoint}次の構成では、名前空間を MSE の名前空間に置き換えます:
nacos.config.namespace=${MSE namespace ID}Go アプリケーションの移行
API を呼び出す前に、環境変数を設定してアクセス資格情報を読み取ります。Microservices Engine の AccessKey ID と AccessKey Secret の環境変数名は `MSE_AK` と `MSE_SK` です。
Nacos SDK for Go を使用する場合は、${serverAddr} を MSE エンドポイントに置き換えます。
sc := []constant.ServerConfig{
{
IpAddr: "${serverAddr}",
Port: 8848,
},
}Go アプリケーションのサンプルデモについては、「nacos-sdk-go」をご参照ください。
Python アプリケーションの移行
Nacos SDK for Python を使用する場合は、${server_address} と ${namespace_id} を MSE エンドポイントと名前空間 ID に置き換えます。
SERVER_ADDRESSES = "${server_address}"
NAMESPACE = "${namespace_id}"
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE)Node.js アプリケーションの移行
Nacos SDK for Node.js を使用する場合は、${server_address} と ${namespace_id} を MSE エンドポイントと名前空間 ID に置き換えます。
const configClient = new NacosConfigClient({
serverAddr: '${server_address}',
namespace: '${namespace_id}',
accessKey: 'MSE_AK',
secretKey: 'MSE_SK',
requestTimeout: 6000,
});C# アプリケーションの移行
${server_address} と ${namespace_id} を MSE エンドポイントと名前空間 ID に置き換えます。
{
"NacosConfig": {
"Listeners": [
{
"Optional": false,
"DataId": "common",
"Group": "DEFAULT_GROUP"
},
{
"Optional": false,
"DataId": "demo",
"Group": "DEFAULT_GROUP"
}
],
"Namespace": "namespace_id",
"ServerAddresses": [ "http://${server_address}:8848/" ],
"UserName": "test2",
"Password": "123456",
"AccessKey": "MSE_AK",
"SecretKey": "MSE_SK",
"EndPoint": "acm.aliyun.com",
"ConfigFilterAssemblies": ["YouPrefix.AssemblyName"],
"ConfigFilterExtInfo": "some ext information"
}
}C++ アプリケーションの移行
Nacos SDK for C++ を使用する場合は、${server_address} と ${namespace_id} を MSE エンドポイントと名前空間 ID に置き換えます。
Properties props;
props[PropertyKeyConst::SERVER_ADDR] = "${server_address}:8848";
props[PropertyKeyConst::NAMESPACE] = "{namespaceId}";ステップ 3: 自己チェックを実行し、自己管理インスタンスを廃止する
アプリケーションを MSE Nacos に完全に移行し、サービスが期待どおりに実行されていることを確認したら、構成のデュアル書き込みを停止できます。自己管理インスタンスのトラフィックを監視します。アクティブな接続または構成プッシュクエリレコードがない場合は、自己管理インスタンスを廃止して移行を完了できます。