[ CloudWeGo 微服务实践 - 06 ] 服务发现(2)
在昨天的 [ CloudWeGo 微服务实践 - 06 ] 服务发现(1) 中,我们发现了官方还没提供灵活的服务发现机制,只能我们自己实现。昨天只是找了一些资料,要研习下才能完成今天的这个环节。
目标
实现基于 etcd 的服务发现。
在客户端自动发现服务地址,发起 RPC。
环境
MacOS Monterey 12.0.1
etcd version:3.5.0
go version go1.16.5 darwin/amd64
步骤
什么是服务发现
先想想什么是服务发现,我们在微服务的服务端已经把服务提供者的信息注册到了注册中心,那么服务发现就是根据已知的依赖的服务名灵活的获取可用节点。
并且服务发现已知的两种做法:1、在服务调用方做负载均衡,调用方从服务列表选择其一自主发起调用;2、服务调用方只向一个提供一组服务的网关发起请求,负载均衡有该服务网关做。方式二可能容易造成单点,比较常见的还是在方式一,由调用方决定选择哪个节点,比如根据权重、轮询、随机等等自主选择。
基于 ctcd 服务发现
官方 DNS Resolver
明天把代码一起分析一遍,稍等。
服务发现的验证
系列阅读
版权声明: 本文为 InfoQ 作者【baiyutang】的原创文章。
原文链接:【http://xie.infoq.cn/article/062389b300c224ce1fc43b196】。文章转载请联系作者。
评论