全部產品
Search
文件中心

Microservices Engine:自建Nacos配置中心遷移到MSE Nacos

更新時間:Aug 09, 2025

MSE Nacos配置中心相對自建Nacos配置中心,提供了配置加解密、推送軌跡等功能,並且具有高效能、高可用及易用性的優勢,可以極大地降低營運成本。本文介紹如何從開源自建Nacos配置中心遷移到MSE Nacos配置中心。

前提條件

  • 建立Nacos引擎

  • 已建立對應的命名空間。具體操作,請參見建立命名空間

    說明

    如果在自建Nacos執行個體中區分了多個不同命名空間,可以在MSE Nacos建立對應的命名空間ID及名稱,保證平滑遷移。

步驟一:自建Nacos配置遷移到MSE Nacos

方式一:使用匯入匯出功能遷移配置

說明

不同命名空間的配置請分別進行匯入和匯出操作

  1. 在自建Nacos開源控制台匯出需要遷移的配置。

    1. 登入自建Nacos開源控制台。

    2. 配置列表頁面選擇目標配置,在配置列表下方單擊匯出,然後在匯出配置對話方塊中單擊匯出

    3. 儲存匯出的設定檔。

  2. 在MSE控制台匯入配置。

    1. 登入MSE註冊中心控制台

    2. 在左側導覽列,選擇注册配置中心 > 实例列表。單擊目標執行個體名稱。

    3. 在左側導覽列,選擇配置管理 > 配置列表

    4. 配置列表頁面,選擇目標命名空間,單擊匯入配置

    5. 匯入配置彈窗中,配置匯入策略(如遇相同配置,支援終止匯入跳過覆蓋),並上傳從自建Nacos開源執行個體控制台匯出的設定檔,然後單擊確定匯入

      image.png

  3. 雙邊更新。

    說明

    在業務應用遷移到MSE Nacos前,為保證業務平滑遷移,您需要對自建Nacos和MSE Nacos配置中心進行同步更新,自主處理。如果存在通過SDK更新的入口,需要在程式中進行雙寫;控制台更新請手動在兩邊同步更新。

方式二:使用同步工具配置遷移任務進行配置熱遷移

說明

同步工具部署請參見 MSE Sync遷移方案

  1. 同步工具部署完成之後,在MSE 控制台,左側導覽列選擇註冊配置中心 >遷移上雲 ,在遷移上雲頁面單擊遷移配置

    image

  2. 遷移配置頁面,單擊下一步,進入建立配置,選擇源執行個體類型Nacos同步類型選擇配置同步源執行個體節點地址填寫執行個體的節點IP和連接埠,目標執行個體選擇要遷移到的目標執行個體,然後單擊下一步,進入實施遷移頁,單擊下載並儲存遷移配置,將下載的配置匯入MSE Sync工具中即可實現原叢集中配置的HotSync。

    image

重要
  • 配置同步不支援同步灰階配置,如果原叢集或者MSE叢集灰階範圍包含同步工具,同步工具會將灰階配置作為正式同步到對端叢集。

  • 請勿在原叢集和目的地組群並發修改配置。

步驟二:替換應用業務參數

請根據您的應用類型,選擇對應的步驟替換應用業務參數:

遷移spring-cloud-alibaba應用

  1. 鑒別您的應用是否為spring-cloud-alibaba應用。

    pom.xml檔案中如果發現如下內容,則表明您的應用為spring-cloud-alibaba應用。

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
  2. 如果您的應用為spring-cloud-alibaba應用,修改應用程式的bootstrap.properties設定檔。

    {MSE的公網/私網地址}替換為目標MSE Nacos執行個體地址。MSE Nacos執行個體地址可以在執行個體的基礎資訊頁面擷取。

    spring.cloud.nacos.config.server-addr=${MSE的公網/私網地址}

    並且在如下配置中,將Namespace替換為MSE中的Namespace,如果命名空間ID沒有變化,則不需要修改。MSE中預設命名空間(Namespace)為空白,可以不填寫。如果匯入的命名空間ID不為空白,可以在Nacos執行個體的命名空間頁面擷取。

說明
  • 如果您使用公網地址進行部署,為了保證連通性,您需要將用戶端IP列入白名單。具體操作,請參見設定白名單

  • 如果白名單配置內容為空白,表示本地所有地址均可訪問該應用。

遷移Java應用

  1. 鑒別您的應用是否為Nacos-Java-SDK應用。

    pom.xml檔案中如果發現如下內容,則表明您的應用為Nacos-Java-SDK應用。

    <dependency>
      <groupId>com.alibaba.nacos</groupId>
      <artifactId>nacos-client</artifactId>
    </dependency>
  2. 如果您的應用為Nacos-Java-SDK,則需要將如下代碼中的${MSE的接入地址}替換為MSE的登入位址。將${namespaceId}替換為MSE的命名空間ID。如果您使用的是預設命名空間,則該處內容置空即可,如果命名空間ID沒有變化,則不需要修改。然後重新部署。

    properties.put("serverAddr", "${MSE的接入地址}");
    properties.put("namespace", "${namespaceId}");

遷移nacos-spring-boot應用

如果您的應用是nacos-spring-boot應用,修改應用程式的application.properties設定檔。

${MSE的接入地址}替換為MSE的登入位址。

nacos.config.server-addr=${MSE的接入地址}

並且在如下配置中,將Namespace替換為MSE中的Namespace:

nacos.config.namespace=${MSE的namespaceID}

遷移Golang應用

說明

調用介面前,需配置環境變數,通過環境變數讀取存取憑證。微服務引擎的AccessKey ID和AccessKey Secret的環境變數名為MSE_AK、MSE_SK。

如果您使用的是Nacos-golang-SDK,則需要將${serverAddr}替換為MSE的登入位址。

sc := []constant.ServerConfig{
    {
    IpAddr: "${serverAddr}",
    Port:   8848,
    },
}
說明

Golang官方應用樣本Demo,請參見nacos-sdk-go

遷移Python應用

如果您使用的是Nacos-Python-SDK,則需要將${server_address}${namespace_id}替換為MSE的登入位址和命名空間ID。

SERVER_ADDRESSES = "${server_address}"
NAMESPACE = "${namespace_id}"
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE)

遷移Node.js應用

如果您使用的是Nacos-Nodejs-SDK,則需要將${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-CPP-SDK,則需要將${server_address}${namespace_id}替換為MSE的登入位址和命名空間ID。

Properties props;
props[PropertyKeyConst::SERVER_ADDR] = "${server_address}:8848";
props[PropertyKeyConst::NAMESPACE] = "{namspaceId}";

步驟三:自建執行個體自檢與下線

當應用已經完全切換到MSE Nacos,並且業務穩定符合預期,可以停止雙邊更新,對自建執行個體上的流量進行確認,保證自建執行個體上已經沒有串連,沒有配置推送查詢記錄情況下,可以下線自建執行個體。至此,整體遷移步驟完成。