【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命令
语法形如redis
,redis
用set
,这里使用get
。
etcdl put 键(key) 值(value)
运行结果如下:
要验证是否put
成功,或者如何取出来
,就要用到接下来的命令了!
get命令
与redis
类似,也是使用get
操作
etcdl get 键(key)
运行结果如下:
取出的结果是:
key
value
进一步,如果只是想取出值,可以使用如下指令:
etcdl get name --print-value-only
注意:print前是两个
-
运行结果如下:
要想同时获取前缀相同的键的值,可以使用前缀选项。
- 先把值
put
进去
- 再使用前缀选项批量获取相同前缀的值
命令如下:
etcdctl get rpc --prefix
运行结果如下:
更多用法如下:
watch命令
使用watch
机制,监听
某个键
的信息变化!
与
redis
类似
命令如下
etcdctl watch rpc.user
运行如果如下:
现在处于监听状态,还需要开启一个去执行变化过程!
再开启一个命令行窗口去监听键的变化
修改键所对应的值
watch
的窗口实时监听到地址发生的变化!
del命令
del
删除某个键
命令如下:
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稳定的有序遍历的方式