![]()
在 2025年10月11日,go-zero 发布了v1.9.2版本。本次更新并没有带来新的功能或重大改动,而是针对一个关键依赖问题进行修复,目的是保证整个项目在依赖管理上的稳定性,避免开发者因为上游依赖回撤而导致构建失败或运行异常。
一、版本概述
本次 v1.9.2 版本是一次纯修复版本,唯一的主要改动是更新 go-redis 版本,以规避其中的已回撤版本问题。
在之前的版本中,由于 go-redis 部分版本被官方回撤,依赖该库的下游项目可能会出现:
•构建失败
•依赖解析冲突
•运行时不可预期的行为
v1.9.2 将 go-redis 升级到安全的可用版本,从而保证用户继续稳定地使用 go-zero 进行开发和部署。
二、主要更新内容 1. go-redis 依赖更新
• 将
github.com/redis/go-redis/v9从v9.14.0升级到v9.15.0(同时调整 go.sum 中对应的版本信息)。• 这一调整直接解决了上游依赖版本回撤导致的构建与运行问题。
为了更好地支持阻塞型 Redis 命令(如 BLPOP, BRPOP, XREADGROUP 等),新增和优化了相关方法的注释与使用建议:
•新增 CreateBlockingNode 方法说明
• 专为阻塞命令创建一个单连接专用 Redis 客户端,避免占满普通连接池。
• 默认连接池大小为 1,确保阻塞操作与普通操作互不影响。
• 新增或完善以下阻塞方法说明:
•
Blpop/BlpopCtx/BlpopEx/BlpopExCtx•
BlpopWithTimeout/BlpopWithTimeoutCtx•
XReadGroup/XReadGroupCtx
核心要点:
阻塞型 Redis 命令会长时间占用连接,必须通过 CreateBlockingNode 创建专用连接,避免影响其他 Redis 操作。3. SSE(Server-Sent Events)代码生成优化
在 goctl 的 API 代码生成中,针对sse: true注解新增了特殊处理逻辑:
• 生成的 handler 会创建客户端 channel,并通过
threading.GoSafeCtx异步推送数据。• logic 层方法的签名改为接受
client chan<- Resp,适配 SSE 推送模式。• 当未使用 SSE 注解时,代码生成保持原有同步返回模式。
同时新增了gensse_test.go测试文件,对 SSE 与普通模式的生成结果进行验证。
4. Swagger 生成优化
• 修复
swagger path在根路由/上生成时多余的尾部斜杠问题:• 例如 prefix 为
/api/v1且 route 为/时,生成路径应为/api/v1,而不是/api/v1/。
• 新增对应的单元测试
path_test.go,确保 root route 与子路由的路径生成逻辑正确。
• 改进
annotation.go中布尔值、字符串、列表类型 KV 解析逻辑:• 支持无引号的值直接解析(之前仅支持带引号的值)。
• 公共解析逻辑通过
getOrDefault抽象,简化重复代码。
• 新增
annotation_test.go中的测试用例,涵盖带引号和不带引号的各种情况。
• 修正拼写错误,将
preivous改为previous。• 修复 SSE 模板生成时未使用对应模板文件的问题,保证生成的 handler/logic 使用正确的模板。
• 更新
go.mongodb.org/mongo-driver/v2版本至v2.3.1。• 更新 goctl 工具模块依赖版本,保持与主框架一致性。
•无功能性变化:业务逻辑保持与 v1.9.1 一致。
•安全与稳定性提升:通过升级 go-redis 避免构建与运行风险。
•强烈建议如果项目使用了 Redis,尤其是阻塞型命令,请尽快升级到 v1.9.2,以确保依赖稳定性。
• API 代码生成场景使用 SSE 的用户,将获得更完善的生成逻辑与测试保障。
go-zero v1.9.2 虽然是一次小版本修复,但它:
•解决了 go-redis 依赖回撤问题,保证了构建与运行的稳定性。
•完善了阻塞型 Redis 操作的说明与方法,让开发者避免连接池枯竭。
•优化了 goctl SSE 与 Swagger 生成逻辑,提高了代码生成质量与一致性。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.