【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【Go-Zero】Windows11下etcd的安装与初步使用

大家好 我是寸铁👊

总结了一篇Windows11下etcd的安装与初步使用的文章✨

喜欢的小伙伴可以点点关注 💝

前言:

在使用etcd 前,我们需要了解一下etcd 是什么,为什么使用etcd 来进行微服务项目的开发。

etcd介绍

etcd(读作 et-see-dee)是一种开源的分布式统一键值存储,用于分布式系统或计算机集群共享配置、服务发现和调度协调etcd 有助于促进更加安全的自动更新协调向主机调度的工作,并帮助设置容器的覆盖网络

etcd 是许多其他项目的核心组件。最值得注意的是,它是Kubernetes首要数据存储,也是容器编排的实际标准系统。使用 etcd, 云原生应用可以保持更为一致的运行时间,而且在个别服务器发生故障时也能正常工作。应用从etcd读取数据并写入到其中;通过分散配置数据,为节点配置提供冗余和弹性

从简单的 Web 应用程序Kubernetes 集群,任何复杂的应用程序都可以从 etcd读取数据或将数据写入 etcd

etcd 采用Go语言编写,它具有出色的跨平台支持,很小二进制文件和强大的社区。 etcd 机器之间的通信通过 Raft 算法处理。


使用场景

etcd 比较多的应用场景是用于服务注册与发现,除此之外,也可以用于键值对存储,应用程序可以读取和写入 etcd 中的数据

一个简单的用例是将数据库连接详细信息或功能标志存储在 etcd 中作为键值对。 可以观察这些值,使我们的应用在更改时可以重新配置信息。高级用法是利用 etcd 的一致性保证来实施数据库 leader 选举或在一组 follower 之间执行分布式锁定


总结

etcd 是一个高度一致的分布式键值存储,它提供了一种可靠的方式来存储需要由分布式系统机器集群访问的数据。它可以优雅地处理网络分区期间leader 选举,以应对机器的故障,即使是在 leader 节点发生故障时

注意:这里的可靠性要比redis更加可靠,这也是我们选择使用etcd作为分布式键值存储的原因。此外,在更改配置文件时,如修改地址等等。需要重新启动项目,而etcd可以帮助我们自动更新。


初步认识etcd 后,下面来看一下怎么安装etcd ?


etcd安装

Windows安装etcd 非常简单,只需要下载安装包即可。

这里由于是简单了解和使用,所以不进行配置环境变量。

需要的话,自行配置一下即可。

Step1

安装地址点我

接着找到Assets , 之后点击Windows版本的安装包,如下:


Step2

进入对应安装etcd的目录


接着,在地址导航框输入cmd


进入到etcd 的命令行窗口


etcd的使用

etcd 的使用和redis 很类似,基本上就是一些设置键和获取键的操作。


报错排查

一开始使用etcdctl 的命令,报错如下:

这是因为127.0.0.1:2379 这个端口的连接不上,为什么连接不上,很明显,我们一开始只是开了一个窗口,也就是客户端 , 还需要开启一个服务端


由于没有配置环境变量,所以这里的使用需要启动两个cmd 窗口,一个用于做etcd客户端 ,一个用于做etcd服务端

etcd服务端

直接在命令行输入etcd 即可


etcd客户端

接着,再开启一个客户端

接着,就可以愉快地在客户端中操作键值对了~

操作键值对的方式和redis类似,也是通过命令进行操作的。

put命令

语法形如redisredisset ,这里使用get

go 复制代码
etcdl put 键(key) 值(value)

运行结果如下:

要验证是否put 成功,或者如何取出来,就要用到接下来的命令了!

get命令

redis 类似,也是使用get 操作

go 复制代码
etcdl get 键(key) 

运行结果如下:

取出的结果是:

key

value


进一步,如果只是想取出值,可以使用如下指令:

go 复制代码
etcdl get name --print-value-only

注意:print前是两个-

运行结果如下:


要想同时获取前缀相同的键的值,可以使用前缀选项。

  • 先把值put 进去
  • 再使用前缀选项批量获取相同前缀的值

命令如下:

go 复制代码
etcdctl get rpc --prefix

运行结果如下:


更多用法如下:


watch命令

使用watch 机制,监听某个的信息变化!

redis 类似

命令如下

go 复制代码
etcdctl watch rpc.user

运行如果如下:

现在处于监听状态,还需要开启一个去执行变化过程!


再开启一个命令行窗口去监听键的变化

修改键所对应的值


watch 的窗口实时监听到地址发生的变化!

del命令

del 删除某个键

命令如下:

go 复制代码
etcdctl del 键(key)

运行结果如下:

返回1 则表明删除成功!

结语

更进一步的对etcd 的使用,还需要结合具体的微服务项目去开展,在做项目的使用,加深对etcd 高可靠性和服务注册与发现的理解。

看到这里的小伙伴,恭喜你又掌握了一个技能👊

希望大家能取得胜利,坚持就是胜利💪

我是寸铁!我们下期再见💕

往期好文💕

【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

【Go面试向】defer与time.sleep初探

【Go面试向】defer与return的执行顺序初探

【Go面试向】Go程序的执行顺序

【Go面试向】rune和byte类型的认识与使用

【Go面试向】实现map稳定的有序遍历的方式

相关推荐
007php0071 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
DT辰白5 小时前
如何解决基于 Redis 的网关鉴权导致的 RESTful API 拦截问题?
后端·微服务·架构
DT辰白6 小时前
基于Redis的网关鉴权方案与性能优化
数据库·redis·缓存
木子七7 小时前
Redis-十大数据类型
redis
老猿讲编程7 小时前
技术发展历程:从 CORBA 到微服务
微服务·云原生·架构
MClink8 小时前
Go怎么做性能优化工具篇之pprof
开发语言·性能优化·golang
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭9 小时前
聊聊volatile的实现原理?
java·jvm·redis
灯火不休➴10 小时前
[Redis] 在Linux中安装Redis并连接图形化工具详细过程(附下载链接)
linux·数据库·redis
m0_7482546610 小时前
go官方日志库带色彩格式化
android·开发语言·golang
time_silence11 小时前
微服务——服务通信与接口设计
微服务