etcd:从应用场景到实现原理的全方位解读
最后更新于:2022-04-01 21:48:30
http://www.infoq.com/cn/articles/etcd-interpretation-application-scenario-implement-principle
随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如何让服务快速透明地接入到计算集群中,如何让共享配置信息快速被集群中的所有机器发现,更为重要的是,如何构建这样一套高可用、安全、易于部署以及响应快速的服务集群,已经成为了迫切需要解决的问题。etcd为解决这类问题带来了福音,本文将从etcd的应用场景开始,深入解读etcd的实现方式,以供开发者们更为充分地享用etcd所带来的便利。
##经典应用场景
要问etcd是什么?很多人第一反应可能是一个键值存储仓库,却没有重视官方定义的后半句,用于配置共享和服务发现。
> A highly-available key value store for shared configuration and service discovery.
实际上,etcd作为一个受到ZooKeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更专注于以下四点。
* 简单:基于HTTP+JSON的API让你用curl就可以轻松使用。
* 安全:可选SSL客户认证机制。
* 快速:每个实例每秒支持一千次写操作。
* 可信:使用Raft算法充分实现了分布式。
随着云计算的不断发展,分布式系统中涉及到的问题越来越受到人们重视。受阿里中间件团队对[ZooKeeper典型应用场景一览](http://jm-blog.aliapp.com/?p=1232)一文的启发,笔者根据自己的理解也总结了一些etcd的经典使用场景。让我们来看看etcd这个基于Raft强一致性算法的分布式存储仓库能给我们带来哪些帮助。
值得注意的是,分布式系统中的数据分为控制数据和应用数据。**使用etcd的场景默认处理的数据都是控制数据,对于应用数据,只推荐数据量很小,但是更新访问频繁的情况。**
## 声明
* 字母哥博客,并不是本文的作者.原作者是孙健波
* 每当我看到一篇好的文章的时候,都希望将它介绍给大家.**转载的目的是分享,而不是抄袭**!此文最初的发表地址为:[etcd:从应用场景到实现原理的全方位解读](http://www.infoq.com/cn/articles/etcd-interpretation-application-scenario-implement-principle)
* 原作者孙健波是**浙江大学SEL实验室**硕士研究生,我想请大家记住这个实验室.《docker源码分析》的作者孙宏亮也是毕业于浙江大学的这个实验室.他们的文章深入解析了Docker及其周边生态系统的原理.
* 不要错过大神,访问地址:[浙江大学SEL实验室](http://www.sel.zju.edu.cn/)
';