|
18 | 18 | package main |
19 | 19 |
|
20 | 20 | import ( |
21 | | - "fmt" |
| 21 | + "encoding/json" |
22 | 22 | "log" |
23 | 23 |
|
24 | 24 | "github.com/polarismesh/polaris-go" |
25 | 25 | "github.com/polarismesh/polaris-go/pkg/model" |
26 | 26 | ) |
27 | 27 |
|
28 | 28 | func main() { |
29 | | - configAPI, err := polaris.NewConfigAPI() |
| 29 | + log.Println("开始启动配置文件监听示例...") |
30 | 30 |
|
| 31 | + configAPI, err := polaris.NewConfigAPI() |
31 | 32 | if err != nil { |
32 | | - fmt.Println("fail to start example.", err) |
| 33 | + log.Printf("创建配置API失败: %v", err) |
33 | 34 | return |
34 | 35 | } |
| 36 | + log.Println("配置API创建成功") |
35 | 37 |
|
36 | 38 | // 获取远程的配置文件 |
37 | 39 | namespace := "default" |
38 | 40 | fileGroup := "polaris-config-example" |
39 | 41 | fileName := "example.yaml" |
40 | 42 |
|
| 43 | + log.Printf("准备获取配置文件 - namespace: %s, fileGroup: %s, fileName: %s", namespace, fileGroup, fileName) |
| 44 | + |
41 | 45 | configFile, err := configAPI.GetConfigFile(namespace, fileGroup, fileName) |
42 | 46 | if err != nil { |
43 | | - log.Println("fail to get config.", err) |
| 47 | + log.Printf("获取配置文件失败: %v", err) |
44 | 48 | return |
45 | 49 | } |
| 50 | + log.Println("配置文件获取成功") |
46 | 51 |
|
47 | 52 | // 打印配置文件内容 |
48 | | - log.Println(configFile.GetContent()) |
| 53 | + content := configFile.GetContent() |
| 54 | + log.Printf("配置文件内容:\n%s", content) |
| 55 | + log.Printf("配置文件内容长度: %d 字符", len(content)) |
49 | 56 |
|
50 | 57 | // 方式一:添加监听器 |
| 58 | + log.Println("添加配置变更监听器(回调函数方式)...") |
51 | 59 | configFile.AddChangeListener(changeListener) |
52 | 60 |
|
53 | 61 | // 方式二:添加监听器 |
| 62 | + log.Println("添加配置变更监听器(通道方式)...") |
54 | 63 | changeChan := configFile.AddChangeListenerWithChannel() |
55 | 64 |
|
| 65 | + log.Println("开始监听配置变更事件...") |
56 | 66 | for { |
57 | 67 | select { |
58 | 68 | case event := <-changeChan: |
59 | | - log.Printf("received change event by channel. %+v", event) |
| 69 | + log.Printf("通过通道接收到配置变更事件: %+v", event) |
60 | 70 | } |
61 | 71 | } |
62 | 72 | } |
63 | 73 |
|
64 | 74 | func changeListener(event model.ConfigFileChangeEvent) { |
65 | | - log.Printf("received change event. %+v", event) |
| 75 | + log.Printf("通过回调函数接收到配置变更事件:") |
| 76 | + log.Printf(" - 变更类型: %v", event.ChangeType) |
| 77 | + log.Printf(" - 命名空间: %s", event.ConfigFileMetadata.GetNamespace()) |
| 78 | + log.Printf(" - 文件组: %s", event.ConfigFileMetadata.GetFileGroup()) |
| 79 | + log.Printf(" - 文件名: %s", event.ConfigFileMetadata.GetFileName()) |
| 80 | + log.Printf(" - 新内容: %s", event.NewValue) |
| 81 | + log.Printf(" - 旧内容: %s", event.OldValue) |
| 82 | + log.Printf("完整事件信息: %+v", jsonMarshal(event)) |
| 83 | +} |
| 84 | + |
| 85 | +func jsonMarshal(v interface{}) string { |
| 86 | + data, err := json.Marshal(v) |
| 87 | + if err != nil { |
| 88 | + return "" |
| 89 | + } |
| 90 | + return string(data) |
66 | 91 | } |
0 commit comments