feat(client): 添加 Python 客户端及示例应用

- 新增 python-client 模块,提供 ConfigClient 配置拉取、定时同步、变更监听
- 使用 pyaes 替代 cryptography 实现 AES 解密,避免编译问题
- 新增 python-client-demo Flask 示例应用
- .gitignore 添加 Python 相关忽略规则
This commit is contained in:
2026-02-05 21:05:19 +08:00
parent 6653c752e7
commit c31746d7d1
11 changed files with 431 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
# Kenaito Config Center Python Client
## 安装
```bash
cd python-client
pip3 install -e .
```
## 快速开始
```python
from kenaito_conf import Config, ConfigClient
config = Config(
base_url="http://localhost:8080",
app_name="my-app",
env="daily",
sync_interval=30,
)
client = ConfigClient(config)
# 监听配置变更
def on_change(changed):
for k, v in changed.items():
print(f"config changed: {k} = {v}")
client.on_change(on_change)
# 启动客户端(拉取配置 + 开启定时同步)
client.start()
# 获取配置
value = client.get("database.host")
all_configs = client.get_all()
# 停止
client.stop()
```
## 配置项
| 参数 | 说明 | 默认值 |
|------|------|--------|
| `base_url` | 配置中心地址 | 必填 |
| `app_name` | 应用名称 | 必填 |
| `env` | 环境(dev/daily/prod) | `dev` |
| `version` | 配置版本 | `latest` |
| `token` | 认证令牌 | 空 |
| `sync_interval` | 同步间隔(秒) | `60` |
| `ignore_global` | 是否忽略全局配置 | `False` |
| `cache_dir` | 本地缓存目录 | `.` |
## Demo
```bash
cd python-client-demo
pip3 install -r requirements.txt
python3 app.py
```
Demo 默认监听 `8082` 端口,访问 `http://localhost:8082/` 查看配置。
环境变量覆盖:
| 环境变量 | 说明 | 默认值 |
|----------|------|--------|
| `SERVER_PORT` | 服务端口 | `8082` |
| `KENAITO_BASE_URL` | 配置中心地址 | `http://localhost:8080` |
| `KENAITO_APP_NAME` | 应用名称 | `kenaito-springboot-demo` |
| `KENAITO_PROFILE` | 环境 | `daily` |
| `KENAITO_VERSION` | 配置版本 | `latest` |
| `KENAITO_TOKEN` | 认证令牌 | 空 |
| `KENAITO_SYNC_INTERVAL` | 同步间隔(秒) | `30` |
| `KENAITO_CACHE_DIR` | 缓存目录 | `.` |