配置管理
引入依赖
go get github.com/polarismesh/polaris-go@latest
初始化 polaris.yaml
你需要在项目的根路径下创建一个 polaris.yaml 文件用于初始化 polaris-go SDK。polaris.yaml配置详细
SDK实例构建
当初始化好 polaris.yaml 文件之后,你可以直接使用在 package github.com/polarismesh/polaris-go 下的 NewConfigAPI 方法进行构造一个 ConfigAPI SDK 实例
import (
...
"github.com/polarismesh/polaris-go"
)
func main() {
configAPI, err := polaris.NewConfigAPI()
}
获取配置文件
// namespace: 命名空间
// fileGroup: 配置分组名称
// fileName: 配置文件名称
GetConfigFile(namespace, fileGroup, fileName string) (model.ConfigFile, error)
对配置文件发起监听
func changeListener(event model.ConfigFileChangeEvent) {
}
func main() {
configFile, err := configAPI.GetConfigFile(namespace, fileGroup, fileName)
configFile.AddChangeListener(changeListener)
}
查询加密配置
需要更新 polaris-go 的版本至 v1.5.0 及以上
// namespace: 命名空间
// fileGroup: 配置分组名称
// fileName: 配置文件名称
GetConfigFile(namespace, fileGroup, fileName string) (model.ConfigFile, error)
调整 polaris.yaml 配置文件
# 配置中心默认配置
config:
# 配置过滤器
configFilter:
enable: true
chain:
# 启用配置解密插件
- crypto
plugin:
crypto:
# 配置解密插件的算法插件类型
entries:
- name: AES
监听配置分组下的已发布文件列表变化
需要更新 polaris-go 的版本至 v1.5.6 及以上版本
// namespace: 命名空间
// group: 配置分组名称
GetConfigGroup(namesapce, group string) (model.ConfigFileGroup, error)
获取到目标配置分组后, 调用配置分组的 AddChangeListener 方法监听改配置分组下已发布配置文件列表的变化
group.AddChangeListener(func(event *model.ConfigGroupChangeEvent) {
before, _ := json.Marshal(event.Before)
after, _ := json.Marshal(event.After)
log.Printf("receive config_group change event\nbefore: %s\nafter: %s", string(before), string(after))
})
model.ConfigGroupChangeEvent 结构体的具体信息
type SimpleConfigFile struct {
// 配置文件命名空间
Namespace string
// 配置文件所在分组名称
FileGroup string
// 配置文件名称
FileName string
// 配置文件的发布版本号,由服务端
Version uint64
Md5 string
ReleaseTime time.Time
}
// ConfigGroupChangeEvent 配置文件变更事件
type ConfigGroupChangeEvent struct {
// Before 该配置分组之前所有已发布的配置文件列表信息
Before []*SimpleConfigFile
// After 该配置分组当前已发布的所有配置文件列表信息
After []*SimpleConfigFile
}