日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

從ACM遷移到MSE Nacos

ACM已進入下線狀態,后續全部數據將被刪除,請您盡快將ACM配置導入MSE Nacos中,專享注冊配置中心性能穩定性更好,功能更豐富。本文介紹如何從ACM控制臺導出配置,然后將配置導入MSE控制臺完成遷移。

重要

ACM停止支持后,您將無法在ACM控制臺新建和編輯配置。您需要注意,ACM停止支持后,接口缺少SLA保障,因此建議您盡快完成配置遷移。

步驟一:將配置導出至MSE Nacos

  1. 使用阿里云賬號登錄MSE購買頁,購買Nacos專業版。支持配置鑒權和加密,有更好的高可用保障。具體Nacos專業版CPU核數、內存數、機器數的選型,請參見微服務注冊配置中心實例能力評估。購買公網帶寬可以按照每秒變更頻率(單位:次/s)*配置數*配置大小(單位:KB)進行單位換算來評估。

  2. 在ACM控制臺導出需要遷移的配置。

    1. 登錄ACM控制臺

    2. 配置列表頁面選擇目標配置,在配置列表下方單擊導出,然后在導出配置(public)對話框中單擊導出

      1

    3. 存儲導出的配置文件。

  3. 在MSE控制臺導入配置。

    1. 登錄MSE控制臺

    2. 在左側導航欄,選擇注冊配置中心 > 實例列表

    3. 實例列表頁面,單擊之前購買的Nacos實例的實例ID

    4. 在左側導航欄,選擇配置管理 > 配置列表

    5. 配置列表頁面,單擊導入配置

    6. 導入配置對話框選擇相同配置的處理方式,然后單擊上傳文件,上傳從ACM控制臺導出的配置文件,最后單擊確定導入2

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

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

遷移spring-cloud-alibaba應用

如果您的應用為spring-cloud-alibaba應用,修改應用程序的bootstrap.properties配置文件。

將如下內容:

spring.cloud.nacos.config.endpoint=${ACM的公網/私網地址}

替換為:

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

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

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

可運行的示例Demo,請參見acm2nacos-spring-cloud-example

您可以通過以下方式鑒別您的應用是否為spring-cloud-alibaba應用:

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

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
重要
  • 只有MSE Nacos 2.0.3以上版本才支持這種方式升級,如果您的MSE Nacos版本在2.0.2以下,請通過MSE控制臺進行升級,升級過程大概需要5~6分鐘,請您耐心等待。具體操作,請參見升級引擎版本

  • 為保障集群的高可用,請將集群節點設置為最少3個節點。

  • MSE Nacos實例的公網和私網地址可以在實例的基礎信息頁面獲取。

    3

  • MSE中默認命名空間(Namespace)為空,可以不填寫。如果導入的命名空間ID不為空,可以在Nacos實例的命名空間頁面獲取。1

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

說明

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

遷移Java應用

  • 如果您使用的是ACM-Java-SDK,即您的依賴pom.xml中存在如下關鍵字:

    <dependency>
        <groupId>com.alibaba.edas.acm</groupId>
        <artifactId>acm-sdk</artifactId>
    </dependency>

    則可以直接在JVM運行參數中添加如下參數,并重新部署,即可完成遷移。

    -DDIAMOND.SERVER.IPS=${MSE的公網/私網地址}

    另外,請在代碼中修改Namespace設置相關代碼。

    properties.put("namespace", "${namespaceId}");
  • 如果您使用的是ACM客戶端,希望變更為Nacos客戶端,可參考如下關于Nacos-Java-SDK用戶遷移的指導。

  • 如果您使用的是Nacos-Java-SDK,即您的依賴pom.xml中存在如下關鍵字:

<dependency>
  <groupId>com.alibaba.nacos</groupId>
  <artifactId>nacos-client</artifactId>
</dependency>

則可以將如下代碼中的${}內容替換成MSE的注冊地址,將${namespaceId}替換為MSE的命名空間ID(如果您使用的是默認命名空間,則該處內容置空即可),然后重新部署。

properties.put("serverAddr", ${MSE的公網/私網地址});
properties.put("namespace", "${namespaceId}");

在啟動時增加如下參數,即可完成遷移。

 -Dnacos.cache.data.init.snapshot=false
說明

nacos-sdk遷移示例Demo,請參見acm2nacos-java-example;Java官方應用示例Demo,請參見Java SDK

遷移nacos-spring-boot應用

如果您的應用是nacos-spring-boot應用,修改應用程序的application.properties配置文件。

將如下內容:

nacos.config.endpoint=${ACM的公網/私網地址}

替換為:

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

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

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

遷移Golang應用

說明

調用接口前,需配置環境變量,通過環境變量讀取訪問憑證。微服務引擎的AccessKey ID和AccessKey Secret的環境變量名為MSE_AK、MSE_SK。

  • 如果您使用的是ACM-golang-SDK,則需要將${endpoint}替換為MSE的注冊地址。

    clientConfig := constant.ClientConfig{
            Endpoint:       ${endpoint} + ":8080",
            NamespaceId:    namespaceId,
            AccessKey:      MSE_AK,
            SecretKey:      MSE_SK,
            TimeoutMs:      5 * 1000,
            ListenInterval: 30 * 1000,
        }
  • 如果您使用的是Nacos-golang-SDK,則需要將${serverAddr}替換為MSE的注冊地址。

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

Golang官方應用示例Demo,請參見nacos-sdk-go

遷移Python應用

  • 如果您使用的是ACM-Python-SDK,則需要將${endpoint}${namespace_id}替換為MSE的注冊地址和命名空間ID。

    ENDPOINT = "${endpoint}"
    NAMESPACE = "${namespace_id}"
    c = acm.ACMClient(ENDPOINT, NAMESPACE, AK, SK)
  • 如果您使用的是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應用

  • 如果您使用的是ACM-Nodejs-SDK,則需要將${endpoint}${namespace_id}替換為MSE的注冊地址和命名空間ID。

    // for find address mode
    const configClient = new NacosConfigClient({
      endpoint: '${endpoint}',
      namespace: '${namespace_id}',
      accessKey: 'MSE_AK',
      secretKey: 'MSE_SK',
      requestTimeout: 6000,
    });
  • 如果您使用的是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的注冊地址。

{
  "NacosConfig": {
    "Listeners": [
      {
        "Optional": false,
        "DataId": "common",
        "Group": "DEFAULT_GROUP"
      },
      {
        "Optional": false,
        "DataId": "demo",
        "Group": "DEFAULT_GROUP"
      }
    ],
    "Namespace": "namespace_id",  // Please set the value of 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++應用

  • 如果您使用的是ACM-CPP-SDK,則需要將${endpoint}${namespace_id}替換為MSE的注冊地址和命名空間ID。

    // Initialize configuration service and the console will retrieve the following parameters through the sample code.
     ACM::init("${endpoint}","$namespace_id","$accessKey","$secretKey");
  • 如果您使用的是Nacos-CPP-SDK,則需要將${server_address}替換為MSE的注冊地址。

    Properties props;
    props[PropertyKeyConst::SERVER_ADDR] = "${server_address}:8848";//Server address

(可選)步驟三:重新給RAM用戶授權

如果您使用了配置鑒權功能,并對指定的RAM用戶進行了授權,那么在應用遷移至MSE之后,進行鑒權腳本的替換,重新對RAM用戶進行新的授權。MSE的鑒權腳本配置示例,請參見注冊配置中心授權

  1. 登錄RAM控制臺

  2. 在左側導航欄,選擇權限管理 > 權限策略

  3. 在權限策略頁面左上角,單擊創建權限策略

  4. 創建權限策略頁面,單擊腳本編輯頁簽。

  5. 在本地復制腳本,并進行替換。

    示例腳本如下:

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "acms:R"
                ],
                "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP/com.alibaba.acm.test",
                "Effect": "Allow"
            }
        ]
    }
  • 替換讀權限

    如果其中包含如下內容:

    "Action": [
                    "acms:R"
                ]

    替換為:

    "Action": [
                    "mse:List*",
                    "mse:Query*",
                    "mse:Get*"
                ]
  • 替換寫權限

    如果其中包含如下內容:

    "Action": [
                    "acms:W"
                ]

    替換為:

    "Action": [
                    "mse:Create*",
                    "mse:Update*",
                    "mse:Delete*"
                ]
  • 替換資源

    請將如下內容:

    "Resource": "*:*:*:*:cfg/{acm_namespace_id}/{group_id}/{data_id}"

    替換為:

    "Resource": "acs:mse:*:*:instance/{instance_id}/{mse_namespace_id}/{group_id}/{data_id}"
    說明

    參數說明如下:

    • {acm_namespace_id}:ACM產品的命名空間ID。

    • {instance_id}:MSE中的實例ID。

    • {mse_namespace_id}:MSE產品的命名空間ID。

    • {group_id}:組ID。

    • {data_id}:Data ID。

如果您不需要精確到group_id級別或者data_id級別的鑒權,可以將其刪除。

  • 如果您只需要精確到namespace級別的鑒權,請替換為:

    "Resource": "acs:mse:*:*:instance/{instance_id}/{mse_namespace_id}"
  • 如果您只需要精確到group_id級別的鑒權,請替換為:

    "Resource": "acs:mse:*:*:instance/{instance_id}/{mse_namespace_id}/{group_id}"

替換完成之后,對RAM用戶重新授權該腳本相應的權限。具體操作,請參見注冊配置中心授權

重新授權大約5~10s后,MSE的RAM用戶權限生效。

步驟四:重新部署并啟動應用

請將您的業務重新部署。部署成功之后,即完成了整個遷移流程。