
# 微服务引擎版本从1.x升级到2.x时有哪些注意事项？
微服务引擎专享版从1.x升级到2.x的过程中及升级完以后可能会出现的现象及解决方法如下：
- **现象1** ：在微服务引擎专享版从1.x版本升级至2.x版本的过程中，使用接口获取配置或更新配置失败，报connection refused或Connection was closed，出现错误信息示例如下：
  ```
  [ERROR] Config update from xxx.xxx.xxx.xx failed. Error message is [Connection refused: xxx.xxx.xxx.xx]. org.apache.servicecomb.config.client.ConfigCenterClient$ConfigRefresh.lambda$null$13(ConfigCenterClient.java:428)
  ```
  或
  ```
  [ERROR]Config update from xxx.xxx.xxx.xx failed. Error message is [Connection was closed]. org.apache.servicecomb.config.client.ConfigCenterClient$ConfigRefresh.lambda$null$13(ConfigCenterClient.java:428)
  ```
  解决方法：微服务引擎专享版1.x版本升级至2.x版本时配置中心会有短暂的重启，重启期间获取配置或更新配置会报错断连。因此引擎升级过程中避免更新配置，升级完成后该问题即可解决。
  
- **现象2** ：使用引擎版本为1.x配置中心接入的用户，无法使用"业务场景治理"功能。
  解决办法：由于引擎版本为2.x的配置中心换成了kie，需要将配置中心接入方式切换为kie，具体切换方式详见[Spring Cloud使用配置中心](https://support.huaweicloud.com/devg-servicestage/cse_04_0016.html)中相关内容。
  
- **现象3** ：在使用版本为2.x的微服务引擎时，使用导入配置文件功能，存在原配置中心格式的文件无法导入，提示文件为空或者格式错误。
  解决办法：将配置文件的配置项格式修改为2.x引擎要求的配置文件格式，新的配置文件为json文件，内容格式如下：
  ```
  {
      "data":[
          {
              "key":"xxx",
              "labels":{
                  "environment":"xxx",
  "service": "xxx",
  "app": "xxx",
  "version": "xxx"
              },
              "value":"xxx",
              "value_type":"text",
              "status":"enabled"
          },
  {
              "key":"xxx",
              "labels":{
                  "environment":"xxx"
              },
              "value":"xxx",
              "value_type":"text",
              "status":"enabled"
          },
  {
              "key":"xxx",
              "labels":{
                  "environment":"xxx",
  "service": "xxx"
              },
              "value":"xxx",
              "value_type":"text",
              "status":"enabled"
          },
  {
              "key":"xxx",
              "labels":{
                  "environment":"xxx",
  "service": "xxx",
  "app": "xxx"
              },
              "value":"xxx",
              "value_type":"text",
              "status":"enabled"
          }
      ]
  }
  ```
  其中：
  - key和value是配置项对应的键和值，其为必填。
  
  - labels是配置范围，其为必填，通过填写environment，service，app，version等字段来确定配置范围。
  
  - value_type是配置项类型，其为必填，可以选择ini、json、text、yaml、properties、xml，默认为text。
  
  - status是配置是否启用，其为选填，可以选择enabled（开启），disabled（关闭），默认关闭。
   
- **现象4** ：若在微服务引擎1.x版本的配置中心设置了全局配置，当升级到2.x之后，全局配置根据配置中心升级后的范围会相应的自动调整作用范围environment=${environmentName}，environmentName取值可以为空、development、testing、acceptance或production。此时如果SDK调整以kie作为配置中心时，需要在项目配置文件中增加自定义标签以获取该部分配置，以下以environment=production为例展示：
  spring-cloud-huawei框架：
  ```
  spring:
    cloud:
      servicecomb:
        config:
          serverType: kie
          kie:
            customLabel: environment
            customLabelValue: production
  ```
  servicecomb-java-chassis框架：
  ```
  servicecomb:
    kie:
      customLabel: environment
      customLabelValue: production
  ```
  
 
