TSF DCFG 分布配置不生效
定位方式如下:
1 检查部署组已发布配置是否正确
2 检查Consul中的配置是否正确
# 全局配置
curl '{tsf_consul_ip}:{tsf_consul_port}/v1/kv/config/application/{namespace_id}/data?nid={namespace_id}&uid={app_id}&token=oss-acae2d9cb7fd&raw'
# 应用配置
curl '{tsf_consul_ip}:{tsf_consul_port}/v1/kv/config/application/{application_id}/{group_id}/data?nid={namespace_id}&uid={app_id}&token=oss-acae2d9cb7fd&raw'
# 或者直接调用 DescribeReleasedConfig
curl -m 5 -i -H "Content-Type: application/json" -X POST '{tsf-dcfg ip}:13000/config/released' -d '{"appId":"{app_id}","uin":"0","subAccountUin":"0","requestId":"111111","groupId":"{group_id}"}'
tsf_consul_ip和tsf_consul_port: 是用户consul的IP和地址,可以在tsf-dcfg模块外挂的application.yml配置文件或者用户应用的环境变量中查到。
namespace_id: 业务应用发布的部署组所属的命名空间ID,一般是namespace-xxxxxxxx。
application_id: 业务应用发布的部署组所属的应用ID,一般是application-xxxxxxxx。
group_id: 业务应用发布的部署组ID,一般是group-xxxxxxxx。
app_id: 业务的租户ID,可以在账户页面或者tsf-dispatch请求日志中获取。
3 检查应用内存中的配置是否正确
例如:ApplicationContext的getPropertie等。
4 检查业务应用是否连接了正确的Consul
5 业务日志中是否有配置刷新日志
通常是以下内容
2018-07-26 16:12:46.460 INFO [tsf-inventory,,,] 94948 --- [pool-1-thread-1] o.s.c.e.event.RefreshEventListener : Refresh keys changed: [tsf.inventory.password.encrypt2]
6 刷新日志中是否有显示KEY
通常是以下内容
2018-07-26 16:12:46.460 INFO [tsf-inventory,,,] 94948 --- [pool-1-thread-1] o.s.c.e.event.RefreshEventListener : Refresh keys changed: [tsf.inventory.password.encrypt2]
7 检查SDK依赖是否正确
检查业务的POM配置
8 重新发布触发配置刷新
在TSF控制台上发布任意新配置或者发布任意配置的新版本即可。
9 检查TSF-DCFG模块客户Consul配置
在@{tsf_oss_host}:/data/tsfjar/dcfg/application-tce.yml 配置文件中检查以下的配置是否是客户的Consul
tsf:
consul:
host: 10.113.44.11
port: 8000
A 一般来说可能是以下情况:
· 需要使用配置的地方未注入,导致无法通过spring的注入机制获取配置。
· 需要使用配置的地方加载时序在配置加载前,只能使用环境变量 启动参数 本地配置。
· 需要使用配置的地方不支持热加载,而配置在启动后有过更新。
B 修改配置并重新发布
C 提供SDK版本号联系TSF支人员
D 修改为正确SDK的依赖
E 修改为正确的Consul配置并重启
F. 提取TSF-DCFG日志并联系TSF支人员
G. 修改为正确配置,重启TSF-DCFG