Files
kenaito-conf/README.md
T

129 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Kenaito Config Center
基于 Go 重构的配置中心。
## 技术栈
- **后端**: Go + Gin + xorm + MySQL
- **前端**: Vue 2 + Vite 5 + Element UI 2
- **客户端**: Go(Java 客户端保留兼容)
## 项目结构
```
kenaito-conf/
├── server/ # Go 管理端
├── web/ # Vue 前端
├── go-client/ # Go 客户端
├── java-springboot-client/ # Java Spring Boot 客户端
└── sql/ # 数据库脚本
```
## 快速开始
### 1. 初始化数据库
```bash
mysql -u root -p configcenter < sql/init.sql
mysql -u root -p configcenter < sql/testdata.sql # 测试数据
```
### 2. 启动后端
```bash
cd server
# 修改 config.yaml 中的数据库配置
go run cmd/main.go
# 或编译后运行
go build -o bin/server cmd/main.go
./bin/server -config config.yaml
```
后端默认监听 `:8080`。
### 3. 启动前端
```bash
cd web
npm install
npm run dev
```
前端默认监听 `:3000`,自动代理 API 到后端。
### 4. 访问
打开 http://localhost:3000
默认管理员账号:`admin` / 密码为 BCrypt 哈希对应的原始密码(见 testdata.sql)
## Go 客户端使用
```go
import "kenaito-conf/go-client"
cfg := &client.Config{
BaseURL: "http://localhost:8080",
AppName: "myapp",
Env: "dev",
Version: "latest",
SyncInterval: 30,
CacheDir: ".",
}
c := client.New(cfg)
// 注册变更回调
c.OnChange(func(changed map[string]string) {
for k, v := range changed {
fmt.Printf("%s = %s\n", k, v)
}
})
// 启动(拉取全量配置 + 开启定时同步)
c.Start()
defer c.Stop()
// 读取配置
dbHost := c.Get("db.host")
```
## API 概览
### 管理端 API(需 JWT 认证)
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | /user/login | 登录 |
| GET | /user/login_user_info | 当前用户信息 |
| GET | /admin/menus | 菜单 |
| POST | /admin/config/list | 配置列表 |
| POST | /admin/config/add | 新增配置 |
| POST | /admin/config/update | 更新配置 |
| GET | /admin/config/:id | 配置详情 |
| POST | /admin/config/delete/:id | 删除配置 |
| GET | /admin/config/config_histories/:id | 配置历史 |
| GET | /admin/config/rollback/:id | 回滚配置 |
| POST | /admin/app/list | 应用列表 |
| POST | /admin/app/add | 新增应用 |
| GET | /admin/app/tree | 应用树 |
| GET | /admin/user/list | 用户列表 |
| POST | /admin/user/add | 新增用户 |
| GET | /admin/group/list | 业务组列表 |
| GET | /admin/profile/list | 环境列表 |
### 客户端 API(无需 JWT)
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/fetch_all_configs | 全量拉取配置 |
| POST | /api/fetch_changed_configs | 增量拉取变更 |
| GET | /api/ping | 健康检查 |
## 与原 Java 版的差异
- **去掉了 ZooKeeper**:配置变更通知改为客户端定时轮询
- **认证方式**:管理端用 JWT,客户端 API 暂开放(可后续加签名验证)
- **前端**:从 layui 静态页面改为 Vue 2 + Element UI 前后端分离
- **加密算法**:保持 AES 兼容,Java 客户端可继续使用