应用平台 APPSTAGE-常见问题:常见问题
常见问题
- SDK初始化失败
SDK初始化失败,graysdk的run和debug日志会打印初始化失败原因,一般原因有如下几种:
- ETCD服务器配置错误(检查conf/graysdk.properties文件中server配置是否正确)。
- ETCD未启动或者网络原因不可用(检查网络以及ETCD是否正常)。
- ETCD中不存在此微服务名称的灰度配置。
- ETCD未启用用户名/密码认证方式,但是SDK配置了认证(检查conf/graysdk.properties文件是否配置了username)。
- jsonRuleFilePath没有配置。
- 灰度规则匹配失败
- 实际传入的参数和值,不满足配置的微服务灰度规则。
- 灰度开关关闭(检查conf/graysdk.properties文件graySwitch是否为1)。
- 灰度规则执行异常(检查graysdk的debug日志)。
- 联系灰度平台开发人员定位。
- 灰度参数的设置
消费端需要在 CS E的invocation设置想要进行灰度的参数,有两种方法:
- 确定需要进行灰度的参数 ,在后端的接口中使用@RequestParam参数来指定。
- 业务直接在消费端设置参数,例如:ContextUtils.getInvocationContext().addContext("x-is-gray", "1")。
第一种方式直接在请求流量的URL中通过设置参数的值来标识灰度流量,第二种是业务在调用SDK之前改变invocation中参数的值来标识灰度。
- 后端灰度节点的判断
后端的节点在自己的microservice.yaml文件中设置参数描述(参照CSE开发网站)。
- 按照版本筛选灰度节点,需要在yaml中的service_description中先定义版本号,然后在管理台上选择按照版本进行灰度,填入定义的版本。
- 按照自定义参数筛选灰度节点,需要在yaml中的instance_description中先自定义灰度参数,并填入值,接着在管理台选择按照自定义参数进行灰度,填入自定义的参数。