Skip to content

w8t-io/config-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌟 微服务配置中心

🌱 概述

本项目是一个微服务配置中心服务,具备泳道配置管理能力。它为微服务提供集中化的配置管理,支持配置的读写、历史版本管理以及配置回滚等功能。通过泳道配置管理,可实现不同环境或流量的配置隔离。

🚀 项目结构

api/
  config.go
go.mod
internal/
  ctx/
  models/
  repos/
  services/
  types/
main.go
pkg/
  client/
  respond/
  tools/

💾 主要目录说明

  • 📁 api: 包含 API 路由和处理逻辑。
  • 📁 internal: 项目核心代码,包含上下文、模型、仓库和服务层。
  • 📁 pkg: 存放可复用的工具包,如客户端、响应处理和工具函数。

🛸功能特性

  • ✏️ 配置读写:支持配置的写入和读取操作,确保微服务能获取最新的配置信息。
  • 📜 历史版本管理:记录配置的历史变更,方便追溯和审计。
  • 🔙 配置回滚:可将配置回滚到指定的历史版本。
  • 🌐 泳道配置管理:实现不同泳道的配置隔离,满足不同环境或流量的配置需求。

🎉 快速开始

依赖安装

确保已经安装了 Go 语言环境,然后在项目根目录下执行以下命令下载依赖:

go mod tidy

运行项目

在项目根目录下执行以下命令启动服务:

go run main.go

📥 API 接口

📝 写入配置

  • 🌐 URL : /api/write
  • 📮 方法 : POST
  • 📋 请求体示例 :
{
    "tenantId": "default",          // 租户 ID
    "namespace": "test",            // 命名空间
    "serviceName": "test",          // 服务名称
    "lane": "default",              // 泳道版本
    "content": "qqq1234567890",     // 配置内容
    "type": "yaml",                 // 配置类型
    "operator": "cairry"            // 操作人
}

🔍 读取配置:

  • 🌐 URL : /api/read/{tenantId}/{namespace}/{serviceName}/{lane}
  • 📮 方法 : GET
  • 🔎 查询参数示例 :
/api/read/123456/test/test-service/default

📜 历史版本管理:

  • 🌐 URL : /api/history/{tenantId}/{namespace}/{serviceName}/{lane}
  • 📮 方法 : GET
  • 🔎 查询参数示例 :
/api/history/123456/test/test-service/default

🔙 配置回滚:

  • 🌐 URL : /api/rollback/{tenantId}/{namespace}/{serviceName}/{lane}/{version}
  • 📮 方法 : POST
  • 📋 请求体示例 :
{
    "id": 1,                        // 历史版本 ID
    "tenantId": "123",              // 租户 ID
    "namespace": "test",            // 命名空间
    "serviceName": "test-service",  // 服务名称
    "lane": "default",              // 泳道版本
    "operator": "admin"             // 操作人
}

About

🚀 一款具备多泳道配置管理能力的轻量级微服务配置中心

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published