Conflow 是一个轻量级的配置中心 SDK,供第三方 Go 应用程序集成使用。通过 Conflow SDK,应用程序可以连接到 LinkEdge 服务器,实现配置的订阅、接收和热更新。
- 🔌 简单易用 - 类似 Nacos SDK 的使用方式
- 🔄 自动重连 - 网络断开自动重连
- 💾 本地缓存 - 支持配置本地缓存
- 📁 文件持久化 - 配置自动保存到文件
- 🔔 实时推送 - 配置变更实时推送
- 🎯 类型安全 - 完整的 Go 类型定义
go get github.com/conflow/sdk-go@latestpackage main
import (
"context"
"log"
"github.com/conflow/sdk-go/sdk"
)
func main() {
// 创建客户端
client, err := sdk.NewClient(&sdk.ClientConfig{
ServerAddr: "linkedge-server:9090",
DeviceID: "my-app-prod-01",
Labels: map[string]string{
"app": "my-app",
"env": "production",
},
})
if err != nil {
log.Fatal(err)
}
defer client.Close()
// 连接服务器
ctx := context.Background()
if err := client.Connect(ctx); err != nil {
log.Fatal(err)
}
// 订阅配置
sub, err := client.Subscribe(ctx, &sdk.SubscribeRequest{
Namespace: "production",
Group: "app-group",
DataIDs: []string{"app.yaml"},
OnChange: func(event *sdk.ConfigChangeEvent) {
log.Printf("Config changed: %s", event.DataID)
// 重新加载配置
reloadConfig(event.Content)
},
})
if err != nil {
log.Fatal(err)
}
defer sub.Unsubscribe()
// 获取当前配置
config, err := client.GetConfig(ctx, "production", "app-group", "app.yaml")
if err == nil {
loadConfig(config.Content)
}
// 等待退出
select {}
}
func reloadConfig(content string) {
// 配置重载逻辑
}| 特性 | LinkEdge Agent | Conflow SDK |
|---|---|---|
| 部署方式 | 独立进程 | 嵌入应用 |
| 功能范围 | 完整(命令、状态、文件、配置) | 仅配置订阅 |
| 权限 | NORMAL 分组 | CONFIG_CENTER 分组 |
| 适合场景 | 边缘设备管理 | 应用配置管理 |
Conflow SDK 适用于以下场景:
- 微服务配置管理 - 微服务集中管理配置
- 动态配置更新 - 配置变更无需重启应用
- 多环境配置 - 开发、测试、生产环境隔离
- 配置审计 - 配置变更历史追踪
查看 examples/simple 获取完整示例。
MIT License