[ CloudWeGo 微服务实践 - 05 ] 服务注册(1)
按照官方文档的介绍 CloudWeGo 的服务注册是自定义扩展的,只需要实现接口,在 NewServer 时,传入相关 options 参数即可。
在正式引入服务注册之前,我们要确定怎么做注册发现,我们实践来讲,先用一下常规方案:etcd 搞一下。今天的的实践时间也主要在 etcd 安装上面。
目标
etcd 安装配置好。
实现 Kitex 的服务注册接口。(下一节才能做)
环境
MacOS Monterey 12.0.1
Etcd
说起 etcd,想起之前和同事讨论问题,同事说“etcd 是中心化的存储...”,说的我好怀疑人生,难道不是分布式的?难道记得 Raft 选举算法不是在这里?
这里我们暂且不谈 etcd 的优越性,把焦点放在各个中间件如何组装成微服务网格。今天先把 etcd 给安排上,作为我们下一节的注册中心。
安装
直接参考 etcd 官网的下载与构建,而这里我们使用 Homebrew 安装
效果
启动
验证
写数据
读数据
引入 etcd
现在尝试在我们的项目中引入 etcd,我们可以直接在文档中找到官方库:
或直接在 GitHub 中找到 >> https://github.com/etcd-io/etcd/tree/main/client/v3
下载依赖
创建 etcd 连接
把如下代码放入 main 函数
尝试启动服务,我们发现能够正常启动,并且无异常日志
读取 etcd 数据
建立连接之后,我们再尝试获取数据,看是否和我们刚刚直接在终端获取的数据一致:
整体代码如下:
再次尝试启动服务:
我们可以看到第一行已经打印了我们的日志
并且和我们在终端获取的数据对比,发现是一致的:
以上,是引入 etcd,下节我们再实现接口,尝试做我们的注册中心。晚安。
版权声明: 本文为 InfoQ 作者【baiyutang】的原创文章。
原文链接:【http://xie.infoq.cn/article/786442495ae7bfc6501547901】。文章转载请联系作者。
评论