微服务专享版引擎版本从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使用配置中心中相关内容。
- 现象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