etcd服务均衡器经历的三个重要版本。

etcd

  1. etcd-client的服务发现,均衡算法,强依赖于grpc的版本。在下面三个版本周期,具备3种不同的算法。

grpc-1.10:

  • 对一条请求而言,向a,b,c三个(app)服务节点同时发送连接建立,返回最快的连接(假定是a)。a节点请求因为错误失败了,则就失败了,该请求不会重试而是直接fail。

grpc-1.7:

  • 对一条请求而言,向a,b,c三个(app)服务节点,同时发送建立连接,返回最快的连接。a节点发生错误了,会有重试机制。重试也不行后就会标记a不健康,并且会维护一个unhealthy list( a在里面),在一个续约周期内,该破损节点,会一直不被使用。

以上,
两个版本的失败重试策略,在grpc版本迭代时,兼容性差,bug多。他们就推出了grpc-1.23

grpc-1.23:

  • 对一条请求而言,a,b,c三个服务节点,同时加建立连接,三个连接全部返回。请求会以轮训的机制来随机获取一个节点使用。在一个续约周期内,如果a损毁,那么他就会一直保持损毁,而请求不会一直失败。因为a损毁时,他就会向b去重试。直到下一次a没法送续约从连接list里移除。

至此,使用etcd,一定要明确gprc的版本,它要求以下包同时正确(因为使用时,IDE容易自动提示不同的包,两个包版本不一致的话,万一你同时使用了两个包源,就蛋疼了。):

  • “google.golang.org/grpc”
  • “github.com/grpc/grpc-go”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值