diff --git a/CHANGELOG.md b/CHANGELOG.md index f57ef90..75cb07e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,21 @@ # CHANGELOG -## v1.0.1 (2026-05-05) -- 优化代码规范:修复变量名冲突(Shadowing),改进 `tryTimes` -> `attempts` 等语义命名。 -- 性能优化:优化 `AppClient` 中的 `Data` 和 `Headers` 类型(从指针改为直接引用),减少内存寻址开销。 -- 性能优化:优化 `NextWithNode` 中的切片分配。 -- 架构优化:导出 `log.FillBase`,支持外部模块实现高效自定义日志。 -- 功能增强:引入 `DiscoverLog`,实现基于对象池的高性能发现过程日志记录。 -- 标准对齐:统一使用 `apigo.cc/go/http` 中定义的 Header 常量。 -- 文档完善:为所有导出类型和方法添加详细文档注释。 -- 测试增强:添加 `BenchmarkDiscover` 基准测试。 +## v1.0.3 (2026-05-05) +- 架构深度优化:将 HTTP 客户端连接池(`appClientPools`)移入 `Discoverer` 实例,实现完全的资源隔离。 +- 并发安全增强:引入读写锁保护 `Config` 结构,防止高并发下的配置读写冲突。 +- 生命周期管理优化:使用 `atomic.Bool` 管理 `daemonRunning` 状态,确保线程安全。 +- 资源回收机制:在 `Stop()` 方法中新增 HTTP 连接池清理逻辑(调用 `Destroy` 释放闲置连接),防止内存与句柄泄漏。 +- 接口严谨性:将 `Discoverer` 内部字段(如 `config`)设为私有,通过 `GetConfig`/`SetConfig` 统一访问。 + +## v1.0.2 +- 架构重构:支持多 Discoverer 实例,消灭包级全局状态。 +- 兼容性:保留包级 API 转发至 `DefaultDiscoverer`。 + +## v1.0.1 +- 优化代码规范:修复变量名冲突,改进命名语义。 +- 性能优化:优化 `AppClient` 类型,减少寻址开销。 +- 故障隔离:实现本地隔离机制,不再篡改全局 Redis 状态。 +- 压力缓解:心跳间隔优化至 5 秒。 ## v1.0.0 -- 从 `ssgo/discover` 迁移至 `apigo.cc/go/discover`。 -- 采用全新的 `apigo.cc/go` 基础设施(log, redis, http, cast, u)。 -- 优化了注册中心同步机制,使用 `redis.Subscribe` 简化 PubSub 处理。 -- 增强了负载均衡算法,引入更精确的得分计算。 -- 统一了 Header 定义,对齐 `go/http` 标准。 -- 移除所有 `panic`,通过 `error` 返回和日志记录确保系统稳定性。 +- 初始版本:从 `ssgo/discover` 迁移并重构。