概述
本次更新聚焦于 KeyCompute 基础设施的稳定性、可扩展性与用户体验提升。我们移除了内存缓存层,全面拥抱 Redis 作为唯一的缓存方案;实现了主从数据库读写分离与自动路由;构建了 Redis 统一缓存服务层,并集成了分布式限流、分布式锁与任务队列优化。同时,修复了多个前端与后台的 i18n 相关问题,优化了日志输出格式。
主要变化
缓存架构:移除内存缓存,仅保留 Redis
移除了原有的内存缓存实现,缓存层统一收归至 Redis。不再提供降级方案——当 Redis 不可用时,系统将回退至不使用缓存的状态,直接访问数据库。这一调整简化了缓存层的维护复杂度,避免了内存缓存与 Redis 缓存之间的数据不一致问题,也让缓存策略更加清晰可预期。
数据库:主从读写分离 + 自动路由
实现了基于主从架构的数据库读写分离,应用层支持自动 DB 路由:
- 写操作(INSERT/UPDATE/DELETE) 自动路由到主库
- 读操作(SELECT) 自动路由到从库
业务代码无需感知底层数据库拓扑,框架层根据 SQL 语句类型自动完成路由决策,对上层服务完全透明。这一设计有效分摊了数据库读压力,提升了整体吞吐量。
Redis 统一缓存服务层
构建了统一的 Redis 缓存服务层,承载以下能力:
- 分布式限流:基于 Redis + Lua 脚本实现原子性的 ZSET 滑动窗口限流,支撑多节点下的流量管控
- 分布式锁:基于 Redis 实现跨节点的互斥锁,保障关键资源的并发安全
- 任务队列优化:基于 Redis 的任务队列机制重构,提升了任务投递与消费的可靠性和性能
前端与后台体验修复
- 注册与需求提交登录框:修复了前端注册、需求提交场景下登录框不支持 i18n 国际化的问题
- 后台支付与订单界面:修复了后台支付、订单管理界面不支持 i18n 的问题
- 语言切换与主题切换:修复了语言切换与主题切换互相干扰的 bug,两者现在独立运作
后台复制框优化
修复了后台复制框在 HTTP 环境路径下不可用的问题,现在无论部署在 HTTP 还是 HTTPS 环境下,复制功能均可正常工作。
日志格式优化
日志输出统一升级为 FULL JSON 格式,每条日志包含完整的结构化字段(时间戳、级别、目标、消息、上下文字段等),便于接入 ELK/Loki 等日志采集系统进行统一检索与分析。
为什么这些更新重要
缓存层的简化降低了系统的维护复杂度与故障排查成本;读写分离为 KeyCompute 支撑更大规模的 AI 请求流量奠定了基础——随着平台接入的模型与用户不断增加,数据库读压力将成为首要瓶颈;Redis 统一服务层为分布式限流、分布式锁等能力提供了标准化的基础设施,避免了各模块各自为政的实现碎片化。
i18n 问题的集中修复则显著提升了国际化场景下的用户体验,尤其对于海外用户和 multi-tenancy 部署场景至关重要。
致谢
功能贡献者:aiqubits 等。
Ext Link: https://github.com/keycompute/keycompute
评论区
写评论还没有评论