Web Analytics

从 IP 地址到品牌域名:一个 Go 团队的 Vanity URL 之旅

“10.0.1.50 是什么服务?” 老张盯着屏幕上的报错信息,眉头紧锁。 build failed: cannot find module "10.0.1.50/user-service": module lookup disabled by GOPROXY=off 他转头问旁边的新人小李:“你知道 10.0.1.50 是什么服务吗?” 小李一脸茫然。他才入职第三天。 这是老张所在公司——一家中型互联网金融公司——的日常。平台组有 50 多个 Go 微服务,全部用内网 IP 地址作为 import path。没有人觉得有什么不对——直到上周服务器搬迁。 背景:IP 地址做 import path 的"原始时代" 两年前,平台组刚开始用 Go 的时候,一切都很简单。5 个微服务,代码放在自建 GitLab 上,import path 直接写 IP: import ( "10.0.1.50/user-service" "10.0.1.50/order-service" "10.0.1.51/payment-gateway" ) “能用就行”,当时没人多想。 但两年后,微服务从 5 个增长到了 50 多个。团队从 8 人扩张到 30 人。问题开始浮现: 问题一:IP 地址毫无可读性 // 这段代码你能看懂每个依赖是什么吗? import ( "10.0.1.50/user-service" // ✅ 还行 "10.0.1.51/pay-gw" // ❓ 支付网关? "10.0.1.52/cfg-svc" // ❓ 配置中心? "10.0.1.53/msg-queue" // ❓ 消息队列封装? ) 新人入职第一天就要记住"IP 地址 ↔ 服务名"的映射表。老张自己都经常搞混 10.0.1.52 和 10.0.1.53。 ...

2026年7月12日 · Tony Bai