Kubernetes ETCD

简述ETCD及其特点

etcd是一个分布式的、高可用的、一致的key-value存储数据库,基于Go语言实现,主要用于共享配置和服务发现。特点:

1)完全复制:集群中的每个节点都可以使用完整的存档;

2)高可用性:Etcd可用于避免硬件的单点故障或网络问题;

3)一致性:每次读取都会返回跨多主机的最新写入;

4)简单:包括一个定义良好、面向用户的API(gRPC);

5)安全:实现了带有可选的客户端证书身份验证的自动化TLS;

6)快速:每秒10000次写入的基准速度;

7)可靠:使用Raft算法实现了强一致、高可用的服务存储目录;

简述ETCD适应的场景

1)服务发现:服务发现要解决的也是分布式系统中最常见的问题之一,即在同一个分布式集群中的进程或服务,要如何才能找到对方并建立连接。本质上来说,服务发现就是想要了解集群中是否有进程在监听udp或tcp端口,并且通过名字就可以查找和连接。

2)消息发布与订阅:在分布式系统中,最实用对的一种组件间的通信方式:消息发布与订阅。构建一个配置共享中心,数据提供者在这个配置中心发布消息,而消息使用者订阅他们关心的主题,一旦主题有消息发布,就会实时通知订阅者。达成集中式管理与动态更新。应用中用到的一些配置信息放到etcd上进行集中管理。

3)负载均衡:分布式系统中,为了保证服务的高可用以及数据的一致性,通常都会把数据和服务部署多份,以此达到对等服务,即使其中的某一个服务失效了,也不影响使用。etcd本身分布式架构存储的信息访问支持负载均衡。

4)分布式通知与协调:通过注册与异步通知机制,实现分布式环境下不同系统之间的通知与协调,从而对数据变更做到实时处理。

5)分布式锁:因为etcd使用Raft算法保持了数据的强一致性,某次操作存储到集群中的值必然是全局一致的,所以很容易实现分布式锁。锁服务有两种使用方式,一是保持独占,二是控制时序。

6)分布式队列:分布式队列的常规用法与场景五中所描述的分布式锁的控制时序用法类似,即创建一个先进先出的队列,保证顺序。

7)集群监控与Leader精选:通过etcd来进行监控实现起来非常简单并且实时性强;

posted @ 2024-03-11 16:14  Mr.peter  阅读(4)  评论(0编辑  收藏  举报