ARTICLE · 1155523
grpc-go Balancer源码走读
grpc-go Balancer源码走读
resolver 和 balancer 的交接点,全在 updateResolverStateAndUnlock 里。
解析成功就起个 watcher 协程盯着。查不到地址时调 ReportError,一路捅到 updateResolverStateAndUnlock。这里会唤醒首次解析的协程,再套用默认服务配置。
拿到新地址后,balancer 先做三件事:去重、打乱顺序、把 IPv4 和 IPv6 交错排开。这样能大幅缩短可感知的连接时间。
最妙的是连接复用。旧连接如果还在新列表里且状态正常,直接保留不动。新地址登记完,旧连接一删,就按序逐个尝试建立连接。
原文grpc-go Balancer源码走读
作者提示: 个人观点,仅供参考
山西,1小时前,