feat: 实现配置删除通知机制(deletedKeys)

- 服务端 fetchChangedConfigs 接口新增 deletedKeys 字段,返回已删除配置的 key 列表
- Go/Node.js/Python/Spring Boot 客户端支持解析 deletedKeys 并删除本地配置
- Spring Boot 客户端新增 removeConfigs 方法,同步更新 Spring Environment
This commit is contained in:
2026-06-17 21:07:51 +08:00
parent 82523b9236
commit 639475b730
6 changed files with 104 additions and 0 deletions
+12
View File
@@ -223,6 +223,18 @@ func (c *Client) fetchChanged() error {
delete(wrapper.Data, "latest.fetch.timestamp")
}
// 处理删除的配置
if deletedKeysStr, ok := wrapper.Data["deletedKeys"]; ok && deletedKeysStr != "" {
deletedKeys := strings.Split(deletedKeysStr, ",")
c.mu.Lock()
for _, key := range deletedKeys {
delete(c.configs, key)
}
c.mu.Unlock()
log.Printf("[ConfigClient] %d configs deleted", len(deletedKeys))
delete(wrapper.Data, "deletedKeys")
}
if len(wrapper.Data) > 0 {
changed := make(map[string]string)
for k, v := range wrapper.Data {