Consul和consul zookeeperr,Doozerd,Etcd的区别

熟悉ZooKeeper的朋友都清楚,这是一个好东西。只是搭建ZooKeeper集群却不是一件容易的事。使用数人云部署ZooKeeper集群?那就是分分钟的事。
注:ZooKeeper 介绍见本文尾部
两步搭建 ZooKeeper 集群
第一步:创建集群
创建集群的方法很简单,请参考:
本文中使用了6台主机为大家更好的展现如何搭建集群环境。
·前三台主机为Master节点,主机类型请选择"计算节点" 和 "数据节点";
·第四、五、六台主机类型请选择"计算节点",用于部署ZooKeeper集群;
主机既包括可以连接互联网的物理主机,也可以是阿里云、UCloud、 AWS、Azure、首都在线和华为云等公有云上购买的任意一台云主机。
确认集群环境正常
按照手册提示,完成集群创建后,请检查主机运行是否正常,查看群集如图所示:
第二步:发布ZooKeeper集群应用
点击"新建应用",按照如下提示,新建Zookeeper应用:
·填写应用名称:zookeeper
·选择集群:es-demo
·添加应用镜像地址:testregistry.dataman.io/centos7/zookeeper-3.4.6 (数人云演示镜像)
·填写镜像版本:
·选择应用模式:HOST 模式
·选择应用类型:无状态应用
·主机选择:10.3.10.17,10.3.10.47,10.3.10.61
·选择容器规格: CPU:0.2 内存:512 MB
·添加环境变量
ZKLIST: 10.3.10.17:.3.10.47:.3.10.61:
ENNAME: eth0 (slave主机的内网IP网卡名称,默认为eth0)
如图所示:
确认ZooKeeper集群正常运行
应用列表如图:
命令行下确认zookeeper集群正常:
到此,3个节点的zookeeper的集群就部署完成啦!
相关Dockerfile和脚本已开源
所使用的 Dockerfile 和启动脚本全部开源,并上传到了数人的GITHUB,有兴趣的同学可以帮助一起改进。
什么是 ZooKeeper
Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务,使得分布式应用可以基于这些接口实现诸如同步、配置维护和分集群或者命名的服务。
zookeeper是一个由多个service组成的集群,一个leader,多个follower,每个server保存一份数据部分,全局数据一致,分布式读写,更新请求转发由leader实施.
更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行,数据更新原子性,一次数据更新要么成功,要么失败,全局唯一数据试图,client无论连接到哪个server,数据试图是一致的.
为什么要用 ZooKeeper
大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等),目前,大部分应用需要开发私有的协调程序,缺乏一 个通用的机制.协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器,ZooKeeper:提供通用的分布式锁服务,用以协调分布式应用。你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
【编者的话】Consul是一个在国外流行的服务发现和配置共享的服务软件。本文翻译自Consul的官方文档,文中重点讲述:在与主流同类软件ZooKeeper、Doozerd以及Etcd比较时,Consul的优势所在。
ZooKeeper、Doozerd、Etcd在架构上都非常相似,它们都有服务节点(server node),而这些服务节点的操作都要求达到节点的仲裁数(通常,节点的仲裁数遵循的是简单多数原则)。此外,它们都是强一致性的,并且提供各种原语。通过应用程序内部的客户端lib库,这些原语可以用来构建复杂的分布式系统。
Consul在一个单一的数据中心内部使用服务节点。在每个数据中心中,为了Consule能够运行,并且保持强一致性,Consul服务端需要仲裁。然而,Consul原生支持多数据中心,就像一个丰富gossip系统连接服务器节点和客户端一样。
当提供K/V存储的时候,这些系统具有大致相同的,读取是强一致性的,并且在面对网络分区的时候,为了保持一致性,读取的可用性是可以牺牲的。然而,当系统应用于复杂情况时,这种差异会变得更加明显。
这些系统提供的语义对开发人员构建服务发现系统很有吸引力,但更重要的是,强调开发人员要构建这些特性。ZooKeeper只提供一个原始的K/V值存储,并要求开发人员构建他们自己的系统来提供服务发现功能。相反的是,Consul提供了一个坚固的框架,这不仅仅是为了提供服务发现功能,也是为了减少推测工作和开发工作量。客户端只需简单地完成服务注册工作,然后使用一个DNS接口或者HTTP接口就可以执行工作了,而其他系统则需要你定制自己的解决方案。
一个令人信服的服务发现框架必须包含健康检测功能,并且考虑失败的可能性。要是节点失败或者服务故障了,即使开发人员知道节点A提供Foo服务也是没用的。Navie系统利用的是心跳、周期性更新和TTLs,这些系统不仅需要工作量与节点数量成线性关系,并且对服务器的固定数量提出了要求。此外,故障检测窗口的存活时间至少要和TTL一样长。
ZooKeeper提供了临时节点,这些临时节点就是K/V条目,当客户端断开连接时,这些条目会被删除。虽然这些临时节点比一个心跳系统更高级,但仍存在固有的扩展性问题,并且会增加客户端的复杂性。与ZooKeeper服务器端连接时,客户端必须保持活跃,并且去做持续性连接。此外,ZooKeeper还需要胖客户端,而胖客户端是很难编写,并且胖客户端会经常导致调试质询。
Consul使用一个完全不同的架构进行健康检测。Consul客户端可以运行在集群中的每一个节点上,而不是拥有服务器节点,这些Consul客户端属于一个,gossip pool提供了一些功能,包括分布式健康检测。gossip协议提供了一个高效的故障检测工具,这个故障检测工具可以应用到任意规模的集群,而不仅仅是作用于特定的服务器组。同时,这个故障检测工具也支持在本地进行多种健康检测。与此相反,ZooKeeper的临时节点只是一个非常原始的活跃度检测。因为有了Consul,客户端可以检测web服务器是否正在返回200状态码,内存利用率是否达到临界点,是否有足够的数据存储盘等。此外,ZooKeeper会暴露系统的复杂性给客户端,为了避免ZooKeeper出现的这种情况,Consul只提供一个简单HTTP接口。
Consul为服务发现、健康检测、K/V存储和多数据中心提供了一流的支持。为了支持任意存储,而不仅仅是简单的K/V存储,其他系统都要求工具和lib库要率先建立。然而,通过使用客户端节点,Consul提供了一个简单的API,这个API的开发只需要瘦客户端就可以了, 而且,通过使用配置文件和DNS接口,开发人员可以建立完整的服务发现解决方案,最终,达到避免开发API的目的。
原文链接:(翻译:洪国安 校对:李颖杰)
===========================
洪国安,编程爱好者,目前是一名大三学生,希望通过帮社区翻译,提高自己的知识面。
貌似只对比了Consul和ZooKeeper ,得出的结论有失偏颇吧。
ETCD基本没有提
要回复文章请先或
We are young & free.你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
发表了文章 o 0 个评论 o 554 次浏览 o
来自相关话题
【编者的话】Etcd v2.3.0正式发布了!这次更新不仅伴随着稳定性和可靠性方面的提升,还为我们带来了新的v3版本API的预览版以及新的存储引擎,除此之外还有哪些诱人的特性呢?赶紧来看看吧!
***[@Container容器技术大会将于6月4日在上海光大会...
发表了文章 o 0 个评论 o 161 次浏览 o
来自相关话题
【编者的话】本文为Eddy Mavungu博士于DEIS官方博客中发布的系列文章的第二部分,Eddy博士在本篇系列文章中分享了Docker容器间互联的方法,并且做了演示。Eddy博士是DEIS公司的创始人,同时也是一位高级研究顾问。本文根据他于DEIS官方博客...
发表了文章 o 0 个评论 o 231 次浏览 o
来自相关话题
【编者的话】本文为Eddy Mavungu博士于DEIS官方博客中发布的系列文章的第一部分,Eddy博士在本篇系列文章中分享了Docker容器间互联的方法,并且做了演示。Eddy博士是DEIS公司的创始人,同时也是一位高级研究顾问。本文根据他于DEIS官方博客...
回复了问题 o 4 人关注 o 2 个回复 o 237 次浏览 o
来自相关话题
回复了问题 o 1 人关注 o 2 个回复 o 234 次浏览 o
来自相关话题
发表了文章 o 0 个评论 o 784 次浏览 o
来自相关话题
【编者的话】CoreOS是一款OS,但它是一款面向云的轻量级OS。CoreOS是以Linux系统为基础,为了建设数据中心的需要,而从Linux底层进行了内核裁减。cloud-config、etcd都是CoreOS离不开的话题,它们对CoreOS的作用何在呢?让...
发表了文章 o 8 个评论 o 1040 次浏览 o
来自相关话题
Kubernetes搭建
自己参照网上文档,把kubernetes搭了一遍,做个笔记。有几个坑,自己踩了,记录下,避免其他人接着踩。文章最末尾有记录自己碰到的错误以及解决办法。
用的软件版本:
centos 7.1
docker 1.8.2
etcd 0.4....
发表了文章 o 2 个评论 o 1881 次浏览 o
来自相关话题
【编者的话】本次分享主要介绍目前etcd的状况和其今后的发展。
,专为一线开发者和运维工程师设计的顶级容器技术会议。
etcd是CoreOS开发的一个分布式一致性键值...
回复了问题 o 3 人关注 o 1 个回复 o 1081 次浏览 o
来自相关话题
发表了文章 o 0 个评论 o 2543 次浏览 o
来自相关话题
【编者的话】etcd是一个用于配置共享和服务发现的高性能的键值存储系统。在2.0版本发布半年之后,etcd终于发布了新的2.1版本,2.1修复了2.0中的众多BUG,并引入了很多新功能,如在线不中断更新与新的鉴权API等众多改进与新功能。
经过数月的艰苦工作...
发表了文章 o 0 个评论 o 554 次浏览 o
来自相关话题
【编者的话】Etcd v2.3.0正式发布了!这次更新不仅伴随着稳定性和可靠性方面的提升,还为我们带来了新的v3版本API的预览版以及新的存储引擎,除此之外还有哪些诱人的特性呢?赶紧来看看吧!
***[@Container容器技术大会将于6月4日在上海光大会...
发表了文章 o 0 个评论 o 784 次浏览 o
来自相关话题
【编者的话】CoreOS是一款OS,但它是一款面向云的轻量级OS。CoreOS是以Linux系统为基础,为了建设数据中心的需要,而从Linux底层进行了内核裁减。cloud-config、etcd都是CoreOS离不开的话题,它们对CoreOS的作用何在呢?让...
发表了文章 o 0 个评论 o 2543 次浏览 o
来自相关话题
【编者的话】etcd是一个用于配置共享和服务发现的高性能的键值存储系统。在2.0版本发布半年之后,etcd终于发布了新的2.1版本,2.1修复了2.0中的众多BUG,并引入了很多新功能,如在线不中断更新与新的鉴权API等众多改进与新功能。
经过数月的艰苦工作...
发表了文章 o 0 个评论 o 3004 次浏览 o
来自相关话题
【编者的话】四位专家解答了有关服务发现的六个问题:(1)什么是服务发现?(2)服务发现包括哪些关键特性,为什么?(3)服务发现带来的主要好处是什么?(4)哪一种服务发现方案是最可靠的?(5)实施服务发现面临的最大挑战是什么?(6)已有的系统如何集成服务发现的功...
发表了文章 o 16 个评论 o 7650 次浏览 o
来自相关话题
【编者的话】 我是吴健,来自上海 国内顶尖的大数据分析公司,参加过“云雀Docker巨好玩”并获得一等奖,年纪尚小请大家多多指教。因为有人提出了这个想法,我之前已经成功实践过这些实验,自己也就把百度...
发表了文章 o 2 个评论 o 6458 次浏览 o
来自相关话题
【编者的话】Consul是一个在国外流行的服务发现和配置共享的服务软件。本文翻译自Consul的官方文档,文中重点讲述:在与主流同类软件ZooKeeper、Doozerd以及Etcd比较时,Consul的优势所在。
ZooKeeper、Doozerd、Etc...
发表了文章 o 0 个评论 o 4469 次浏览 o
来自相关话题
【编者的话】etcd是一个用于配置共享和服务发现的高性能的键值存储系统。1月28日,CoreOS官方宣布发布etcd 2.0,这是etcd史上首个稳定的大版本。这篇文章来自于CoreOS的CTO Brandon Philips,他在文中描述了etcd 2.0的...
发表了文章 o 6 个评论 o 4477 次浏览 o
来自相关话题
【编者的话】本文作者通过ZooKeeper与Eureka作为(注...
回复了问题 o 4 人关注 o 2 个回复 o 237 次浏览 o
来自相关话题
回复了问题 o 1 人关注 o 2 个回复 o 234 次浏览 o
来自相关话题
回复了问题 o 3 人关注 o 1 个回复 o 1081 次浏览 o
来自相关话题
回复了问题 o 12 人关注 o 5 个回复 o 8082 次浏览 o
来自相关话题
回复了问题 o 3 人关注 o 2 个回复 o 2060 次浏览 o
来自相关话题
发表了文章 o 0 个评论 o 554 次浏览 o
来自相关话题
【编者的话】Etcd v2.3.0正式发布了!这次更新不仅伴随着稳定性和可靠性方面的提升,还为我们带来了新的v3版本API的预览版以及新的存储引擎,除此之外还有哪些诱人的特性呢?赶紧来看看吧!
***[@Container容器技术大会将于6月4日在上海光大会...
发表了文章 o 0 个评论 o 161 次浏览 o
来自相关话题
【编者的话】本文为Eddy Mavungu博士于DEIS官方博客中发布的系列文章的第二部分,Eddy博士在本篇系列文章中分享了Docker容器间互联的方法,并且做了演示。Eddy博士是DEIS公司的创始人,同时也是一位高级研究顾问。本文根据他于DEIS官方博客...
发表了文章 o 0 个评论 o 231 次浏览 o
来自相关话题
【编者的话】本文为Eddy Mavungu博士于DEIS官方博客中发布的系列文章的第一部分,Eddy博士在本篇系列文章中分享了Docker容器间互联的方法,并且做了演示。Eddy博士是DEIS公司的创始人,同时也是一位高级研究顾问。本文根据他于DEIS官方博客...
发表了文章 o 0 个评论 o 784 次浏览 o
来自相关话题
【编者的话】CoreOS是一款OS,但它是一款面向云的轻量级OS。CoreOS是以Linux系统为基础,为了建设数据中心的需要,而从Linux底层进行了内核裁减。cloud-config、etcd都是CoreOS离不开的话题,它们对CoreOS的作用何在呢?让...
发表了文章 o 8 个评论 o 1040 次浏览 o
来自相关话题
Kubernetes搭建
自己参照网上文档,把kubernetes搭了一遍,做个笔记。有几个坑,自己踩了,记录下,避免其他人接着踩。文章最末尾有记录自己碰到的错误以及解决办法。
用的软件版本:
centos 7.1
docker 1.8.2
etcd 0.4....
发表了文章 o 2 个评论 o 1881 次浏览 o
来自相关话题
【编者的话】本次分享主要介绍目前etcd的状况和其今后的发展。
,专为一线开发者和运维工程师设计的顶级容器技术会议。
etcd是CoreOS开发的一个分布式一致性键值...
发表了文章 o 0 个评论 o 2543 次浏览 o
来自相关话题
【编者的话】etcd是一个用于配置共享和服务发现的高性能的键值存储系统。在2.0版本发布半年之后,etcd终于发布了新的2.1版本,2.1修复了2.0中的众多BUG,并引入了很多新功能,如在线不中断更新与新的鉴权API等众多改进与新功能。
经过数月的艰苦工作...
发表了文章 o 0 个评论 o 3004 次浏览 o
来自相关话题
【编者的话】四位专家解答了有关服务发现的六个问题:(1)什么是服务发现?(2)服务发现包括哪些关键特性,为什么?(3)服务发现带来的主要好处是什么?(4)哪一种服务发现方案是最可靠的?(5)实施服务发现面临的最大挑战是什么?(6)已有的系统如何集成服务发现的功...
发表了文章 o 16 个评论 o 7650 次浏览 o
来自相关话题
【编者的话】 我是吴健,来自上海 国内顶尖的大数据分析公司,参加过“云雀Docker巨好玩”并获得一等奖,年纪尚小请大家多多指教。因为有人提出了这个想法,我之前已经成功实践过这些实验,自己也就把百度...
发表了文章 o 2 个评论 o 6458 次浏览 o
来自相关话题
【编者的话】Consul是一个在国外流行的服务发现和配置共享的服务软件。本文翻译自Consul的官方文档,文中重点讲述:在与主流同类软件ZooKeeper、Doozerd以及Etcd比较时,Consul的优势所在。
ZooKeeper、Doozerd、Etc...
获得 3 次赞同, 0 次感谢推荐这篇日记的豆列
······

我要回帖

更多关于 consul vs zookeeper 的文章

 

随机推荐