跳转至

更新日志

文档版本: 1.0.0
最后更新: 2025-08-19
Git 提交: c1aa5b0f
作者: Lincoln

本文档记录了 JAiRouter 项目的版本更新历史和重要变更。

版本规范

JAiRouter 遵循 语义化版本 规范:

  • 主版本号 (MAJOR): 不兼容的 API 变更
  • 次版本号 (MINOR): 向后兼容的功能新增
  • 修订号 (PATCH): 向后兼容的问题修正

版本历史

[未发布] - 开发中

新增功能

  • 完善的文档体系和用户指南
  • 多语言文档支持(中文/英文)
  • 增强的监控和告警功能
  • 更多的适配器支持

改进优化

  • 性能优化和内存管理改进
  • 更好的错误处理和日志记录
  • 配置验证和用户体验提升

问题修复

  • 修复已知的内存泄漏问题
  • 解决并发场景下的竞态条件
  • 改进配置热更新的稳定性

[0.3.2] - 2025-08-20

新增功能

  • 监控集成: 完整的 Prometheus + Grafana 监控栈
  • 性能指标: 新增业务指标和基础设施指标收集
  • 告警规则: 预配置的告警规则和通知机制
  • 监控仪表板: 专业的 Grafana 仪表板模板

改进优化

  • 指标优化: 优化指标收集性能,减少对主业务的影响
  • 内存管理: 改进指标数据的内存使用和清理机制
  • 配置简化: 简化监控相关的配置参数

问题修复

  • 修复监控指标在高并发下的数据不准确问题
  • 解决长时间运行后的内存泄漏问题
  • 修复 Prometheus 指标格式兼容性问题

技术债务

  • 重构监控模块的代码结构
  • 改进单元测试覆盖率
  • 优化构建和部署流程

[0.3.1] - 2025-08-15

新增功能

  • 中国加速构建: 专门为中国用户优化的 Docker 构建
  • 阿里云镜像: 使用阿里云 Maven 镜像加速依赖下载
  • 构建脚本: 新增 docker-build-china.sh 构建脚本
  • Maven Profile: 新增 china profile 支持

改进优化

  • 构建速度: 中国用户构建速度提升 5-10 倍
  • 网络优化: 优化网络连接和超时配置
  • 文档完善: 添加中国用户专用的构建指南

问题修复

  • 修复在中国网络环境下的依赖下载超时问题
  • 解决 Maven 仓库连接不稳定的问题
  • 修复 Docker 构建过程中的网络错误

[0.3.0] - 2025-08-14

新增功能

  • Docker 容器化: 完整的 Docker 部署支持
  • 多环境部署: 支持开发、测试、生产环境配置
  • Docker Compose: 提供完整的容器编排配置
  • 健康检查: 容器级别的健康检查机制
  • 监控集成: 基础的监控指标暴露

改进优化

  • 镜像优化: 多阶段构建,生产镜像约 200MB
  • 安全加固: 非 root 用户运行,最小权限原则
  • 性能调优: 容器环境下的 JVM 参数优化
  • 日志管理: 容器化环境的日志收集和轮转

问题修复

  • 修复容器环境下的配置文件路径问题
  • 解决容器重启后配置丢失的问题
  • 修复网络连接在容器间的通信问题

破坏性变更

  • 默认配置文件路径从 ./config 改为 /app/config
  • 环境变量命名规范调整

[0.2.1] - 2025-08--12

新增功能

  • 定时清理任务: 自动清理不活跃的限流器,防止内存泄漏
  • 内存优化: 改进内存使用模式,减少 GC 压力
  • 客户端 IP 限流增强: 更精确的客户端 IP 识别和限流
  • 配置文件自动合并: 支持多版本配置文件的智能合并

改进优化

  • 性能提升: 限流器性能优化,减少锁竞争
  • 监控增强: 新增内存使用和清理任务的监控指标
  • 日志优化: 改进日志格式和性能
  • 错误处理: 更好的异常处理和错误恢复机制

问题修复

  • 修复长时间运行后的内存泄漏问题
  • 解决高并发场景下的限流器竞态条件
  • 修复配置热更新时的线程安全问题
  • 解决客户端 IP 获取在代理环境下的问题

技术改进

  • 重构限流器清理机制
  • 改进单元测试覆盖率到 85%
  • 优化代码质量检查规则

[0.2.0] - 2025-08-11

新增功能

  • 限流机制: 支持 Token Bucket、Leaky Bucket、Sliding Window、Warm Up 四种限流算法
  • 熔断器: 实现熔断器模式,支持失败阈值、恢复检测、降级策略
  • 降级策略: 支持默认响应和缓存降级
  • 配置持久化: 支持内存存储和文件存储两种后端
  • 动态配置更新: 运行时更新服务实例、权重、限流、熔断等配置

改进优化

  • 性能优化: 响应式编程模型,支持高并发处理
  • 配置管理: 配置文件自动合并和版本管理
  • 错误处理: 完善的异常处理和错误恢复机制
  • 监控指标: 新增限流、熔断相关的监控指标

问题修复

  • 修复负载均衡器在实例变更时的线程安全问题
  • 解决配置更新时的数据一致性问题
  • 修复高并发场景下的内存泄漏问题

API 变更

  • 新增动态配置管理 API (/api/config/instance/*)
  • 新增配置文件合并 API (/api/config/merge/*)
  • 扩展健康检查 API,包含更多状态信息

[0.1.0] - 2025-08-04

新增功能

  • 基础网关: 统一 /v1/* API 网关,支持 OpenAI 兼容格式
  • 服务类型支持: Chat、Embedding、Rerank、TTS、STT、Image Generation、Image Editing
  • 适配器模式: 支持 GPUStack、Ollama、VLLM、Xinference、LocalAI、OpenAI 适配器
  • 负载均衡: 实现 Random、Round Robin、Least Connections、IP Hash 四种策略
  • 健康检查: 每服务独立状态接口,自动剔除不可用实例
  • 配置管理: 基于 YAML 的静态配置支持

技术特性

  • Spring Boot 3.5.x: 基于最新的 Spring Boot 框架
  • 响应式编程: 使用 Spring WebFlux 和 Reactor Core
  • 代码质量: 集成 Checkstyle、SpotBugs、JaCoCo 代码质量工具
  • API 文档: 使用 SpringDoc OpenAPI 自动生成 API 文档
  • 单元测试: 包含负载均衡、健康检查等核心功能的单元测试

项目结构

  • 建立清晰的模块化架构
  • 定义统一的编码规范和最佳实践
  • 建立完整的构建和测试流程

升级指南

从 0.3.1 升级到 0.3.2

配置变更

# 新增监控配置
monitoring:
  metrics:
    enabled: true
    categories:
      - system
      - business
      - infrastructure

部署变更

  • 新增 Prometheus 和 Grafana 容器
  • 更新 docker-compose.yml 配置
  • 导入新的 Grafana 仪表板

注意事项

  • 监控功能默认启用,可能会增加少量性能开销
  • 新增的监控端点需要相应的网络配置

从 0.2.1 升级到 0.3.0

破坏性变更

  • 配置文件路径变更:./config/app/config
  • 环境变量命名调整

迁移步骤

  1. 更新配置文件路径
  2. 调整环境变量名称
  3. 更新部署脚本和容器配置

从 0.1.0 升级到 0.2.0

新增依赖

  • 无需额外依赖,所有功能已内置

配置扩展

# 新增限流配置
model:
  services:
    chat:
      rate-limit:
        type: token-bucket
        capacity: 100
        refill-rate: 10

# 新增熔断配置
      circuit-breaker:
        failure-threshold: 5
        recovery-timeout: 30s
        success-threshold: 3

已知问题

当前版本 (0.3.2)

  • 在极高并发场景下(>10k RPS),监控指标可能出现轻微延迟
  • Docker 容器在某些网络环境下可能出现 DNS 解析缓慢

历史问题

  • ~~0.3.1: 中国网络环境下构建超时~~ (已修复)
  • ~~0.2.1: 长时间运行后内存泄漏~~ (已修复)
  • ~~0.2.0: 高并发下配置更新竞态条件~~ (已修复)

贡献者

感谢所有为 JAiRouter 项目做出贡献的开发者:

  • 核心团队: 负责架构设计和核心功能开发
  • 社区贡献者: 提供功能建议、问题报告和代码贡献
  • 文档团队: 完善项目文档和用户指南
  • 测试团队: 进行功能测试和性能验证

反馈和建议

如果您在使用过程中遇到问题或有改进建议,欢迎通过以下方式反馈:

我们重视每一个反馈,并会及时响应和处理。