夜雨聆风学习资料网

ARTICLE · 1133437

grpc-go Resolver源码走读

grpc-go Resolver源码走读

刚写完 grpc-go 客户端调用,顺手把 Resolver 源码扒了一遍。重点是搞清客户端是怎么找到后端地址的。

建连接时先解析 target,按 scheme 找对应的 resolver。找不到就回退到默认的 dns,再重新匹配。等真正发起 RPC 时,如果通道正闲着,会先唤醒连接链路,再去启动 resolver。

真正的重头戏在 DNS 解析器里。它分两条路走:要是 target 本身就是 IP,直接回调返回,连后台协程都不用开;要是域名,就起个 watcher 协程在后台轮询。

每次查询先看 SRV 记录,再看 A/AAAA 记录拿业务 IP。查成功就更新状态,失败就用指数退避重试。为了防止刷屏,两次查询至少得隔 30 秒。

原文grpc-go Resolver源码走读
作者提示: 个人观点,仅供参考
山西,18分钟前,

相关学习资料

暂无相关学习资料