乐趣区

关于后端:了解-etcd

本文次要介绍 etcd 能解决什么问题,哪些大型项目应用了 etcd,以及 etcd 社区的状况。

初识 etcd

我是在一个我的项目文档上看到 etcd 的,过后还不理解 etcd 是做什么的。

看到 etcd 这个名字的时候我就在想,为什么叫 etcd 呢?好眼生啊,etcd 拆分一下就是 etc 和 d,etc 不由得让我联想到了 Linux,在 Linux 零碎中 etc 文件夹下通常放配置相干的文件,那么 d 呢?d 是什么意思?

查阅了 etcd 的官网文档,发现 d 代表 distributed。

“etcd” 这个名字源于两个想法,即 unix “/etc” 文件夹和分布式系统 ”d”istributed。“/etc” 文件夹为单个零碎存储配置数据的中央,而 etcd 存储大规模分布式系统的配置信息。因而,”d”istributed。的 “/etc”,是为 “etcd”。

原来如此。

etcd 的性能

etcd 是一个基于 Raft 算法分布式键值对 存储,用来保留要害数据并提供拜访。

Raft 算法是分布式系统中十分经典的一个算法,Raft 算法能解决分布式系统当选主、同步、一致性等问题,更多请查阅 Raft 算法。

所以 etcd 除了存储以外,还能提供选主、同步等一系列性能,能够应用 etcd 做服务注册与发现、音讯订阅公布、协调分布式工作等。

可能解决分布式常见问题的工具不止 etcd,还有 ZooKeeper、Consul,以下是 etcd、ZooKeeper、Consul 的比照.(来自 etcd 文档)

在理解 etcd 的过程中发现,K8S、TiCDC、Apache APISIX 都用到了 etcd。

Kubernetes

Kubernetes 将配置数据存储到 etcd 中,用于服务发现和集群治理;etcd 的一致性对于正确调度和操作服务至关重要。Kubernetes API 服务器将集群状态长久化到 etcd 中。它应用 etcd 的 watch API 来监控集群并推出要害的配置更改。

TiCDC

TiCDC 是一款通过拉取 TiKV 变更日志实现的 TiDB 增量数据同步工具,具备将数据还原到与上游任意 TSO 统一状态的能力,同时提供凋谢数据协定 (TiCDC Open Protocol),反对其余零碎订阅数据变更。

架构中的 PD 是应用 etcd 实现高可用。更多请查阅 TiCDC 文档

Apache APISIX

Apache APISIX 是一个动静、实时、高性能的 API 网关,提供负载平衡、动静上游、灰度公布、服务熔断、身份认证、可观测性等丰盛的流量治理性能。

架构中应用 etcd 做配置存储,实现动静扩容等。更多请查阅 Apache APISIX 文档

etcd 社区

etcd 是一个开源我的项目,最初聊聊 etcd 的社区。

etcd 目前最新版本是 v3.5.0,通过 Github 上 Insights 看板发现社区并不沉闷,近一个月只合并了 13 个 PR,凋谢的 issue 有 150+,大多是 bug 等反馈,处理速度也比较慢。

2019 年 ~ 2020 年还凋谢了社区会议,不过目前没有更新了。

总的来说 etcd 社区并不沉闷。

总结

对 etcd 有了初步的意识,理解了 etcd 能解决什么问题,哪些大型项目应用了 etcd,以及 etcd 社区的状况。

退出移动版