go 1.26 环境下多端点 etcd 地址的解析异常问题,已经被 go-zero v1.10.2 明确列入修复清单。该版本在官网记录的发布日期为 2026 年 5 月 31 日,除了调整服务发现地址的格式规则,还解决了重复监听事件引发的内存持续增长问题,同时为 mcp 工具处理程序提供可选的 http 请求元数据入口。
MCP 的新增入口名为 WithRequestMetadataExtractor。完成显式配置后,请求头、查询参数和路径变量都可以被提取到处理程序的上下文中,后续调用对应辅助函数就能读取这些内容。官方示例演示了租户请求头和用户查询参数的取值方式,方便工具处理逻辑直接调用请求携带的相关信息。

来源:Go-Zero 官方文档
这一元数据桥接功能需要主动启用。官方明确说明,原有 NewMcpServer(c) 调用逻辑完全不受影响;新增辅助函数分别覆盖整体元数据、请求头、查询参数和路径变量四类内容。它提供的只是信息传递通道,官方记录没有承诺该桥接功能自动完成身份认证或权限判断,不能把可读取租户字段等同于已经验证租户身份。
服务发现地址的修复针对 BuildDiscovTarget。官方说明,Go 1.26 对 URI 的解析规则执行得更严格,此前把逗号分隔的多个主机直接放在 authority 部分的写法,会导致相关 gRPC 服务的 etcd 服务发现失败。新格式将主机列表移入路径,把注册键放到查询参数,不再沿用原来的主机组合形式。

来源:Go-Zero 官方文档
也就是说,同时使用多端点 etcd 并切换到 Go 1.26 的项目,是这项兼容修复直接覆盖的适用范围。改动点位于框架构造发现目标地址的逻辑层,不能把日志中的格式样例误当成要求迁移所有服务注册数据,也不能从中推断静态直连场景存在相同故障。
另一组修复面向长时间运行的 zRPC 服务。此前监听器可能对值未变化的 PUT 事件重复调用 OnAdd,内部切片也可能无条件追加相同键。修正后会跳过完全重复的项;值真正变化时先删除旧项再添加新项,键迁移到其他服务器地址时同步清理旧记录。
文档图片署名 go-zero contributors,按 CC BY 4.0 许可引用;图片为官方页面节选,已裁剪或等比缩放,图床另附站点水印。
这两类修复分别处理地址解析和重复状态积累问题,不能相互替代。官方记录没有公布特定业务的内存下降比例或统一压力测试结果。升级后的观察对象仍应是实际发现目标、多端点连接和长运行服务的实例列表变化,MCP 元数据桥接则只在显式启用时改变处理程序可读取的信息范围。











