Skip to content

voilet/conflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conflow 配置中心 SDK

Go Version License

Conflow 是一个轻量级的配置中心 SDK,供第三方 Go 应用程序集成使用。通过 Conflow SDK,应用程序可以连接到 LinkEdge 服务器,实现配置的订阅、接收和热更新。

特性

  • 🔌 简单易用 - 类似 Nacos SDK 的使用方式
  • 🔄 自动重连 - 网络断开自动重连
  • 💾 本地缓存 - 支持配置本地缓存
  • 📁 文件持久化 - 配置自动保存到文件
  • 🔔 实时推送 - 配置变更实时推送
  • 🎯 类型安全 - 完整的 Go 类型定义

安装

go get github.com/conflow/sdk-go@latest

快速开始

package 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 的区别

特性 LinkEdge Agent Conflow SDK
部署方式 独立进程 嵌入应用
功能范围 完整(命令、状态、文件、配置) 仅配置订阅
权限 NORMAL 分组 CONFIG_CENTER 分组
适合场景 边缘设备管理 应用配置管理

使用场景

Conflow SDK 适用于以下场景:

  1. 微服务配置管理 - 微服务集中管理配置
  2. 动态配置更新 - 配置变更无需重启应用
  3. 多环境配置 - 开发、测试、生产环境隔离
  4. 配置审计 - 配置变更历史追踪

示例

查看 examples/simple 获取完整示例。

License

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages