feat: 更新文档和配置逻辑,增强心跳机制和持续测试功能
- 在 INSTALL.md 和 README.md 中添加配置优先级说明,确保环境变量优先级最高。 - 增强心跳机制,新增字段以传递节点信息。 - 持续测试功能优化,支持批量推送和自动清理。 - 更新版本号至 v1.1.4,完善文档以反映新功能和改进。
This commit is contained in:
91
README.md
91
README.md
@@ -85,12 +85,25 @@ BACKEND_URL=http://your-backend-server:8080 ./run.sh start
|
||||
|
||||
## 配置
|
||||
|
||||
### 配置优先级
|
||||
|
||||
配置按以下优先级加载(高优先级会覆盖低优先级):
|
||||
|
||||
1. **环境变量**(最高优先级)
|
||||
2. **配置文件** `config.yaml`
|
||||
3. **默认值**
|
||||
|
||||
### 环境变量
|
||||
|
||||
- `BACKEND_URL`: 后端服务地址(必需,默认: http://localhost:8080)
|
||||
- `BACKEND_URL`: 后端服务地址(**优先级最高**,会覆盖配置文件中的设置)
|
||||
- `CONFIG_PATH`: 配置文件路径(可选,默认: config.yaml)
|
||||
- `LOG_FILE`: 日志文件路径(可选,默认: node.log)
|
||||
|
||||
**重要说明:**
|
||||
- `BACKEND_URL` 环境变量会**覆盖**配置文件中的 `backend.url` 设置
|
||||
- 即使配置文件存在,设置环境变量后也会优先使用环境变量的值
|
||||
- 这确保了编译后的二进制文件不会硬编码后端地址
|
||||
|
||||
### 配置文件(可选)
|
||||
|
||||
创建 `config.yaml` 文件:
|
||||
@@ -99,20 +112,28 @@ BACKEND_URL=http://your-backend-server:8080 ./run.sh start
|
||||
server:
|
||||
port: 2200
|
||||
backend:
|
||||
url: http://your-backend-server:8080
|
||||
url: http://your-backend-server:8080 # 会被 BACKEND_URL 环境变量覆盖
|
||||
heartbeat:
|
||||
interval: 60
|
||||
log:
|
||||
file: node.log # 日志文件路径(默认: node.log,空则输出到标准错误)
|
||||
level: info # 日志级别: debug, info, warn, error(默认: info)
|
||||
debug: false
|
||||
node:
|
||||
id: 0 # 节点ID(通过心跳自动获取)
|
||||
ip: "" # 节点IP(通过心跳自动获取)
|
||||
country: "" # 国家(通过心跳自动获取)
|
||||
province: "" # 省份(通过心跳自动获取)
|
||||
city: "" # 城市(通过心跳自动获取)
|
||||
isp: "" # ISP(通过心跳自动获取)
|
||||
```
|
||||
|
||||
**日志配置说明:**
|
||||
**配置说明:**
|
||||
- `backend.url`: 后端服务地址,会被 `BACKEND_URL` 环境变量覆盖
|
||||
- `log.file`: 日志文件路径。如果为空,日志将输出到标准错误(stderr)
|
||||
- `log.level`: 日志级别,支持 `debug`、`info`、`warn`、`error`
|
||||
- 也可以通过环境变量 `LOG_FILE` 设置日志文件路径
|
||||
- 日志文件会自动创建,如果目录不存在会自动创建
|
||||
- `node.*`: 节点信息通过心跳自动获取并保存,无需手动配置
|
||||
- 配置文件不会被编译进二进制文件,是运行时读取的
|
||||
|
||||
## 运行脚本
|
||||
|
||||
@@ -603,9 +624,67 @@ grep -i "error" node.log
|
||||
tail -n 100 node.log
|
||||
```
|
||||
|
||||
## 心跳机制
|
||||
|
||||
节点会定期向后端发送心跳,上报节点状态和获取节点信息。
|
||||
|
||||
### 心跳请求字段
|
||||
|
||||
心跳请求包含以下字段:
|
||||
|
||||
- `type`: 固定值 `pingServer`
|
||||
- `version`: 协议版本号,固定值 `2`
|
||||
- `host_name`: 节点主机名(自动读取系统主机名)
|
||||
|
||||
### 心跳响应
|
||||
|
||||
心跳响应包含以下节点信息:
|
||||
|
||||
- `node_id`: 节点ID
|
||||
- `node_ip`: 节点外网IP
|
||||
- `country`: 国家
|
||||
- `province`: 省份
|
||||
- `city`: 城市
|
||||
- `isp`: ISP
|
||||
|
||||
这些信息会自动保存到配置文件中,用于后续的数据推送。
|
||||
|
||||
## 持续测试功能
|
||||
|
||||
节点支持持续 Ping 和 TCPing 测试,测试结果会自动推送到后端服务器。
|
||||
|
||||
### 功能特性
|
||||
|
||||
- ✅ 实时推送测试结果到后端
|
||||
- ✅ 批量推送优化(减少HTTP请求频率)
|
||||
- ✅ 自动清理超时任务
|
||||
- ✅ 资源自动清理(防止内存泄漏)
|
||||
- ✅ 详细的调试日志(debug模式)
|
||||
|
||||
### 数据推送
|
||||
|
||||
- 测试结果会自动推送到后端 `/api/public/node/continuous/result` 接口
|
||||
- 推送包含节点ID、IP、位置信息和测试结果
|
||||
- 如果后端任务不存在,节点端会自动停止对应任务
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v1.1.3 (最新)
|
||||
### v1.1.4 (最新)
|
||||
|
||||
**新增功能:**
|
||||
- ✨ 心跳请求新增 `version` 字段(协议版本号,默认值:2)
|
||||
- ✨ 心跳请求新增 `host_name` 字段(自动读取系统主机名)
|
||||
- ✨ 支持环境变量 `BACKEND_URL` 覆盖配置文件中的后端地址
|
||||
- ✨ 持续测试功能增强,支持批量推送和自动清理
|
||||
|
||||
**改进:**
|
||||
- 🔧 修复持续测试数据推送的锁管理问题
|
||||
- 🔧 修复任务停止时未清理推送缓冲的内存泄漏问题
|
||||
- 🔧 优化配置加载逻辑,环境变量优先级最高
|
||||
- 🔧 增强日志记录,添加详细的调试信息
|
||||
- 📝 完善文档,添加配置优先级和心跳机制说明
|
||||
|
||||
### v1.1.3
|
||||
|
||||
**新增功能:**
|
||||
- ✨ 添加日志文件输出功能,支持配置日志文件路径和级别
|
||||
|
||||
Reference in New Issue
Block a user