网站开发与部署,高端大气企业网站,网站设计宽屏,怎么做网站代销1#xff1a;什么是 Etcd ?
Etcd 是 CoreOS 团队于2013年6月发起的开源项目#xff0c;它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法#xff0c;Etcd基于 Go 语言实现。
名字由来#xff0c;它源于两个方面#xff0c;…1什么是 Etcd ?
Etcd 是 CoreOS 团队于2013年6月发起的开源项目它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法Etcd基于 Go 语言实现。
名字由来它源于两个方面unix的“/etc”文件夹和分布式系统(“D”istribute system)的D组合在一起表示etcd是用于存储分布式配置的信息存储服务。 2Kubernetes 为什么用 Etcd ?
2014年6月Google的Kubernetes项目诞生了我们前面所讨论到Go语言编写、etcd高可用、Watch机制、CAS、TTL等特性正是Kubernetes所需要的它早期的0.4版本使用的正是etcd v0.2版本。
Kubernetes是如何使用etcd v2这些特性的呢举几个简单小例子。
当你使用Kubernetes声明式API部署服务的时候Kubernetes的控制器通过etcd Watch机制会实时监听资源变化事件对比实际状态与期望状态是否一致并采取协调动作使其一致。Kubernetes更新数据的时候通过CAS机制保证并发场景下的原子更新并通过对key设置TTL来存储Event事件提升Kubernetes集群的可观测性基于TTL特性Event事件key到期后可自动删除。
Kubernetes项目使用etcd除了技术因素也与当时的商业竞争有关。CoreOS是Kubernetes容器生态圈的核心成员之一。 3Etcd的主要特点和用途包括
Etcd是一个分布式键值存储系统通常用于在分布式系统中存储配置数据、元数据和状态信息。它是由CoreOS开发的基于Raft一致性算法实现了高可用性和一致性。Etcd最初是为了支持CoreOS的容器集群管理工具而开发的但后来被许多其他项目广泛使用包括Kubernetes等。
Etcd的主要特点和用途包括 一致性保证Etcd使用Raft一致性算法来确保数据的一致性和可靠性。在Etcd集群中数据的读写操作都将遵循一致性和持久性要求从而确保系统的可靠性。 高可用性Etcd支持数据的复制和故障转移即使某个节点发生故障集群仍然能够继续工作并保持数据的可用性。 分布式锁Etcd提供了分布式锁的支持可以用于在分布式系统中协调资源的访问避免竞争条件和数据冲突。 服务发现在微服务架构中Etcd可以用作服务发现的后端存储。服务实例可以注册到Etcd中并通过查询Etcd来发现其他服务的位置和状态。 配置管理Etcd可以用于存储系统的配置信息例如网络配置、服务发现、权限控制等使得系统可以动态地管理和调整配置而不需要硬编码在应用程序中。
总的来说Etcd提供了一个可靠、高性能的分布式存储解决方案用于解决分布式系统中的配置管理、服务发现、一致性保证和分布式锁等问题 4raft共识算法的选举机制 在 etcd 中领导者节点的选举是通过 Raft 共识算法来完成的。Raft 算法定义了一套机制确保在集群中只有一个领导者其他节点都是跟随者或候选人。 Raft 算法的选举过程包括以下几个步骤 选举超时Election Timeout每个节点在随机的时间间隔内设置一个选举超时计时器。一旦计时器超时节点就会认为当前没有领导者于是开始新一轮的选举。 成为候选人Becoming a Candidate当节点的选举超时计时器触发时节点会变成候选人并向其他节点发送请求投票的消息。 请求投票Request Votes候选人节点向其他节点发送请求投票的消息包括候选人的任期号等信息。其他节点收到请求后会判断是否投票给该候选人。 投票过程Voting Process节点在收到请求投票消息后会进行投票。如果节点尚未投票给其他候选人并且候选人的任期号大于自己的任期号则会投票给候选人并重置自己的选举超时计时器。 获得多数投票Winning the Election如果候选人收到了超过半数节点的投票那么它就会成为新的领导者。在成为领导者后它会发送心跳消息来维持自己的领导地位并开始接收客户端请求并将其复制到其他节点。 维持领导地位Maintaining Leadership一旦成为领导者节点会周期性地发送心跳消息给其他节点以维持自己的领导地位。如果其他节点在一定时间内未收到领导者的心跳消息它们会认为当前领导者已失效从而开始新一轮的选举过程。 总的来说Raft 算法通过定时的选举过程来确保集群中只有一个领导者从而保证系统的一致性和可靠性。选举过程中节点的状态转换和投票过程都是根据 Raft 算法的规则来执行的以确保选举的正确性和可靠性。 5基本入门
5.1:github地址
GitHubhttps://github.com/etcd-io/etcd 5.2:下载
etcd支持 linuxmac和docker环境的安装下载windows稍微麻烦点需要二进制文件
Releases · etcd-io/etcd (github.com) 5.2以windows按照为例
下载二进制文件 本地解压 为了方便使用 etcd你可以将 etcd 的二进制文件所在目录添加到系统的 PATH 环境变量中。这样你就可以在命令行中直接使用 etcd 和 etcdctl 命令。
启动
点击etcd.exe文件 安装完成后会得到 2 个脚本 etcdetcd 服务本身 etcdctl客户端用于操作 etcd比如读写数据 执行 etcd 脚本就可以启动服务了服务默认占用 2379 和 2380 端口作用分别如下 2379提供 HTTP API 服务和 etcdctl 交互 2380集群中节点间通讯 启动日志显示2379标识启动成功 验证启动结果
执行
etcdctl.exe --endpointslocalhost:2379 endpoint health
返回标识启动成功 localhost:2379 is healthy: successfully committed proposal: took 27.4106ms 插入和查询数据
插入
etcdctl.exe --endpointslocalhost:2379 put wkn 1 查询
etcdctl.exe --endpointslocalhost:2379 get wkn 5.3:etcd可视化工具
Etcd 的可视化工具推荐 etcdkeeper
地址https://github.com/evildecay/etcdkeeper 启动成功在浏览器输入
http://127.0.0.1:8080/etcdkeeper/