zookeeper和etcd的简单了解

本文最后更新于2017年7月14日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

缘由:

整理一下zookeeper和etcd的一些学习资源,方便以后参考。

正文:

参考解答:
ZooKeeper是什么?

ZooKeeper是一个分布式协调服务,用来管理大量的主机。协调和管理在分布式环境的一个服务是一个复杂的过程。ZooKeeper 简单解决了其结构和API这个问题。ZooKeeper允许开发人员能够专注于核心应用程序逻辑,而无需担心应用程序的分布式特性。

ZooKeeper 基础知识、部署和应用程序
https://www.ibm.com/developerworks/cn/data/library/bd-zookeeper/index.html

Zookeeper教程
https://www.w3cschool.cn/zookeeper/
http://www.yiibai.com/zookeeper/

ZooKeeper深入浅出
https://holynull.gitbooks.io/zookeeper/content/chapter1.html
http://blog.leanote.com/post/holynull/Zookeeper

Zookeeper中文网
http://zookeeper.majunwei.com/


etcd是什么?

etcd 是一个高可用的分布式一致性k-v存储系统,可用于共享配置/信息 与 服务注册发现。etcd 的灵感来自于 ZooKeeper 和 Doozer 。

etcd 使用入门
http://cizixs.com/2016/08/02/intro-to-etcd

etcd:从应用场景到实现原理的全方位解读
http://www.infoq.com/cn/articles/etcd-interpretation-application-scenario-implement-principle

CoreOS 实战:剖析 etcd
http://www.infoq.com/cn/articles/coreos-analyse-etcd

Etcd 架构与实现解析
http://jolestar.com/etcd-architecture/

Getting started with etcd
https://coreos.com/etcd/docs/latest/getting-started-with-etcd.html

什么是 etcd
http://udn.yyuap.com/doc/docker_practice/etcd/intro.html

Etcd 集群搭建
https://mritd.me/2016/09/01/Etcd-%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA/

etcd使用手记
http://debugo.com/using-etcd/

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/3393.html

《zookeeper和etcd的简单了解》上有13条评论

  1. 手把手教你学习 etcd
    https://mp.weixin.qq.com/s?__biz=MzUxMDQxMDMyNg==&mid=2247484352&idx=1&sn=69dfe7b0b7c2a8bfe7efa82d4eceea1f

    Etcd 是一个分布式的、一致性的键值存储系统,主要用于配置共享和服务发现,etcd 基于 go 语言实现;Google 的容器集群管理系统 Kubernetes、开源 PaaS 平台 Cloud Foundry 和 CoreOS 的 Fleet 都广泛使用了 etcd。有以下特性:
    简单:安装配置简单,而且提供了 HTTP API 进行交互,使用简单;
    安全:可选的 SSL 客户端证书认证;
    快速:根据官方提供的 benchmark 数据,单实例支持每秒 2k+ 读操作;
    可靠:采用 raft 算法,实现分布式系统数据的可用性和一致性。

  2. Etcd+confd通过Nginx对后端服务的注册发现
    https://mp.weixin.qq.com/s/sEL5in3LrWowN2C1WqjnJA

    Etcd是一个分部式KV存储系统,confd是一个对Etcd key或目录做变化监控的工具,并配有相关语法,可以将变化的KV处理后形成配置文件,假设后端服务用的是Docker,Nginx就是对Docker做7层负载和流量调度的。

    再看业务逻辑,Docker容器起来后,会通过接口(rest api或者rpc)向Etcd注册相关KV信息,confd检测到Etcd的KV变化后,立即触发程序通过模板形成新的Nginx配置文件,先做离线语法测试,如果没问题就覆盖原配置,进而reload,测试不通过不覆盖原配置,整个过程安全可控。在容器注册到Nginx的upstream后,Nginx会对容器做健康检查,如果正常,则分发流量过去。

    根据业务情况,目前要考虑的问题有5个:

    1、Nginx多域名多server的混合注册,使Nginx可以混合调度多个业务;

    2、不同机房如何在同一Etcd集群上进行注册,如何规划;

    3、confd更新频率如何周期可控制,KV每有变化实时触发reload太敏感,况且每个容器要注册多个KV,在整体注册完之前,是不需要reload的;

    4、confd启动时如何关联多个Etcd的地址,保证高可用;

    5、权限问题如何处理,怎么做,如果任何人知道ip和端口就可以注册,那么服务就垮了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注