etcd的简单介绍

106 阅读2分钟
这是我参与「第五届青训营」伴学笔记创作活动的第 12 天

etcd的简单介绍

etcd的基本介绍

etcd是coreOS基于Raft协议开发的分布式键值存储,它可以和NoSQL一样作为一个K-V存储,同时它也拥有监听机制,能够进行心跳检测以及key的过期及续约,所以它可以用做服务发现共享配置,以及和有些k-v存储一样它也可以用作分布式锁。安全方面etcd对https有相应的支持,可以进行ssl的连接

什么是服务发现

众所周知目前主流的服务端架构就是微服务架构,在微服务架构中有特别多的服务,那么当服务与服务之间要调用时我们应该去怎么寻找到服务的地址呢?如果说把地址写死那就会出现不灵活的情况,比如说你有增加服务或者减少服务要怎么通知到调用服务的客户端?这个时候就出现了服务的发现,服务将自身的信息注册到注册中心,要调用时就去注册中心去找到服务地址然后连接,这整个过程就被称之为服务发现

etcd做服务发现的可行性

etcd租约 Lease API

etcd中Lease service提供租约的支持,Lease是一种检测客户端存活的一种机制,为了将租约绑定到键值储存中每个key最多可以附加一个租约,当租约到期时该租约附加的key都会被删除,并且生成一个删除事件。当服务注册到etcd时会给到一个租约并且在给定的ttl内获取到keepalive时对租约进行续租,若是没有则会将该服务存储的key进行过期并删除

watch机制实现配置的监控

etcd的watch api提供了一个基于事件的接口用于异步去监视键的更改,正是由于整个watch机制etcd可以对服务的配置进行监听,对于配置的修改能够及时的知晓。