怎么做服务注册发现的

本文阅读 2 分钟
首页 golang 正文
题目序号:(3274)
题目来源: 腾讯
频次: 1

答案:(重拾)

  • 服务发现是指服务实例向服务注册与发现中心获取其他服务实例信息,用于进行随后的远程调用。
  • 服务发现是针对调用端的,一般分为两类问题:

    1.存量获取:当sevice A启动时,需要从service Registry 获取service B的已有的节点列表;service B1,service B2,service B3,然后根据自己的负载均衡算法来选择合适的节点发送请求。

    2.增量侦听:在1中已经有了service B1,service B2,service B3,如果此时又启动了service B4,那么就需要通知service A有个新增的节点。

    还有一个问题就是应对服务发现故障 。对于服务调用方来说,我们都会在内存里缓存一个可用的节点列表。不管是使用etcd,consul或者nacos等,我们都有可能面临服务发现集群故障,以etcd为例,当遇到etcd故障时,我们就需要冻结service B的节点信息不去变更,此时一定不能清空节点信息,一旦清空就无法获取了,而此时service B很可能都是正常的,并且go-zero会自动隔离和恢复故障节点。

本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论