zookeeper为什么要使用zookeeper?有什么功能吗?

zookeeper  时间:2021-08-26  阅读:()

Zookeeper-Zookeeper可以干什么

在Zookeeper的官 网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. 这大概描述了Zookeeper主要可以干哪些事情:配置管理,名字服务,提供分布式同步以及集群管理。

那这些服务又到底是什么呢?我们为什么需要这样的服务?我们又为什么要使用Zookeeper来实现呢,使用Zookeeper有什么优势?接下来我会挨个介绍这些到底是什么,以及有哪些开源系统中使用了。

配置管理 在我们的应用中除了代码外,还有一些就是各种配置。

比如数据库连接等。

一般我们都是使用配置文件的方式,在代码中引入这些配置文件。

但是当我们只有一种配置,只有一台服务器,并且不经常修改的时候,使用配置文件是一个很好的做法,但是如果我们配置非常多,有很多服务器都需要这个配置,而且还可能是动态的话使用配置文件就不是个好主意了。

这个时候往往需要寻找一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴趣的都可以获得变更。

比如我们可以把配置放在数据库里,然后所有需要配置的服务都去这个数据库读取配置。

但是,因为很多服务的正常运行都非常依赖这个配置,所以需要这个集中提供配置服务的服务具备很高的可靠性。

一般我们可以用一个集群来提供这个配置服务,但是用集群提升可靠性,那如何保证配置在集群中的一致性呢? 这个时候就需要使用一种实现了一致性协议的服务了。

Zookeeper就是这种服务,它使用Zab这种一致性协议来提供一致性。

现在有很多开源项目使用Zookeeper来维护配置,比如在HBase中,客户端就是连接一个Zookeeper,获得必要的HBase集群的配置信息,然后才可以进一步操作。

还有在开源的消息队列Kafka中,也使用Zookeeper来维护broker的信息。

在Alibaba开源的SOA框架Dubbo中也广泛的使用Zookeeper管理一些配置来实现服务治理。

名字服务 名字服务这个就很好理解了。

比如为了通过网络访问一个系统,我们得知道对方的IP地址,但是IP地址对人非常不友好,这个时候我们就需要使用域名来访问。

但是计算机是不能是别域名的。

怎么办呢?如果我们每台机器里都备有一份域名到IP地址的映射,这个倒是能解决一部分问题,但是如果域名对应的IP发生变化了又该怎么办呢?于是我们有了DNS这个东西。

我们只需要访问一个大家熟知的(known)的点,它就会告诉你这个域名对应的IP是什么。

在我们的应用中也会存在很多这类问题,特别是在我们的服务特别多的时候,如果我们在本地保存服务的地址的时候将非常不方便,但是如果我们只需要访问一个大家都熟知的访问点,这里提供统一的入口,那么维护起来将方便得多了。

如何在windows下使用zookeeper

准备:下载kafka和zookeeper 1:kafka官网地址:/downloads 2:zookeeper官网地址:/ 配置zookeeper: 1:伪集群配置 1、在 zookeeper-3.4.6conf 新建三个配置文件zoo1.cfg、zoo2.cfg、zoo3.cfg 分别修改使用如下参数 zoo1.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=D:\Java\soft\zookeeper-3.4.6\data\1 dataLogDir=D:\Java\soft\zookeeper-3.4.6\log\1 clientPort=2181 server.1=127.0.0.1:2887:3887 server.2=127.0.0.1:2888:3888 server.3=127.0.0.1:2889:3889 zoo2.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=D:\Java\soft\zookeeper-3.4.6\data\2 dataLogDir=D:\Java\soft\zookeeper-3.4.6\log\2 clientPort=2182 server.1=127.0.0.1:2887:3887 server.2=127.0.0.1:2888:3888 server.3=127.0.0.1:2889:3889 zoo3.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=D:\Java\soft\zookeeper-3.4.6\data\3 dataLogDir=D:\Java\soft\zookeeper-3.4.6\log\3 clientPort=2183 server.1=127.0.0.1:2887:3887 server.2=127.0.0.1:2888:3888 server.3=127.0.0.1:2889:3889 2:在 zookeeper-3.4.6in 新建三个server zkServer1.cmd setlocal call "%~dp0zkEnv.cmd" set .apache.zookeeper.server.quorum.QuorumPeerMain set ZOOCFG=..confzoo1.cfg echo on java "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" -cp "%CLASSPATH%"%ZOOMAIN% "%ZOOCFG%" endlocal zkServer2.cmd setlocal call "%~dp0zkEnv.cmd" set .apache.zookeeper.server.quorum.QuorumPeerMain set ZOOCFG=..confzoo2.cfg echo on java "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" -cp "%CLASSPATH%"%ZOOMAIN% "%ZOOCFG%" %* endlocal zkServer3.cmd setlocal call "%~dp0zkEnv.cmd" set .apache.zookeeper.server.quorum.QuorumPeerMain set ZOOCFG=..confzoo3.cfg echo on java "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" -cp "%CLASSPATH%"%ZOOMAIN% "%ZOOCFG%" %* endlocal 添加set ZOOCFG,三个cmd文件对应各自的cfg文件 3、添加data和log文件夹 D:Javasoftzookeeper-3.4.6 下新建data文件夹 在data下创建1 2 3文件夹 D:Javasoftzookeeper-3.4.6 下新建log文件夹 在log下创建1 2 3文件夹 4、创建myid 分别在data1,data2,data3下创建文件 myid,去掉后缀名,并分别添加内容 1、2、3 5、启动Server 启动三个server文件后,用jps查看,会看到三个启动的java主进程。

zookeeper有哪几种节点类型

这类节点的基本特性和上面的节点类型是一致的。

额外的特性是,在ZK中,每个父节点会为他的第一级子节点维护一份时序,会记录每个子节点创建的先后顺序。

基于这个特性,在创建子节点的时候,可以设置这个属性,那么在创建节点过程中,ZK会自动为给定节点名加上一个数字后缀,作为新的节点名。

这个数字后缀的范围是整型的最大值。

zookeeper 3.4.6和zookeeper 3.4.8的区别

zookeeper 3.4.6和zookeeper 3.4.8的区别 安装ZooKeeper时看到的一片文章,感觉挺好的,拿来分享一下。

ZooKeeper的安装模式分为三种,分别为:单机模式(stand-alone)、集群模式和集群伪分布模式。

ZooKeeper 单机模式的安装相对比较简单,如果第一次接触ZooKeeper的话,建议安装ZooKeeper单机模式或者集群伪分布模式。

initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。

当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。

总的时间长度就是 5*2000=10 秒

Consul和ZooKeeper的区别

Consul是一个在国外流行的服务发现和配置共享的服务软件。

本文翻译自Consul的官方文档,文中重点讲述:在与主流同类软件ZooKeeper、Doozerd以及Etcd比较时,Consul的优势所在。

ZooKeeper、Doozerd、Etcd在架构上都非常相似,它们都有服务节点(server node),而这些服务节点的操作都要求达到节点的仲裁数(通常,节点的仲裁数遵循的是简单多数原则)。

此外,它们都是强一致性的,并且提供各种原语。

通 过应用程序内部的客户端lib库,这些原语可以用来构建复杂的分布式系统。

Consul在一个单一的数据中心内部使用服务节点。

在每个数据中心中,为了Consule能够运行,并且保持强一致性,Consul服务端需要仲裁。

然而,Consul原生支持多数据中心,就像一个丰富gossip系统连接服务器节点和客户端一样。

当提供K/V存储的时候,这些系统具有大致相同的语义,读取是强一致性的,并且在面对网络分区的时候,为了保持一致性,读取的可用性是可以牺牲的。

然而,当系统应用于复杂情况时,这种差异会变得更加明显。

为什么要使用zookeeper?有什么功能吗?

2006年的时候Google出了Chubby来解决分布一致性的问题(distributed consensus problem),所有集群中的服务器通过Chubby最终选出一个Master Server ,最后这个Master Server来协调工作。

简单来说其原理就是:在一个分布式系统中,有一组服务器在运行同样的程序,它们需要确定一个Value,以那个服务器提供的信息为主/为准,当这个服务器经过n/2+1的方式被选出来后,所有的机器上的Process都会被通知到这个服务器就是主服务器 Master服务器,大家以他提供的信息为准。

很想知道Google Chubby中的奥妙,可惜人家Google不开源,自家用。

但是在2009年3年以后沉默已久的Yahoo在Apache上推出了类似的产品ZooKeeper,并且在Google原有Chubby的设计思想上做了一些改进,因为ZooKeeper并不是完全遵循Paxos协议,而是基于自身设计并优化的一个2 mit的协议,如图所示: ZooKeeper跟Chubby一样用来存放一些相互协作的信息(Coordination),这些信息比较小一般不会超过1M,在zookeeper中是以一种hierarchical tree的形式来存放,这些具体的Key/Value信息就store在tree node中。

当有事件导致node数据,例如:变更,增加,删除时,Zookeeper就会调用 triggerWatch方法,判断当前的path来是否有对应的监听者(watcher),如果有watcher,会触发其process方法,执行process方法中的业务逻辑

hosteons:10Gbps带宽,免费Windows授权,自定义上传ISO,VPS低至$21/年,可选洛杉矶达拉斯纽约

hosteons当前对美国洛杉矶、达拉斯、纽约数据中心的VPS进行特别的促销活动:(1)免费从1Gbps升级到10Gbps带宽,(2)Free Blesta License授权,(3)Windows server 2019授权,要求从2G内存起,而且是年付。 官方网站:https://www.hosteons.com 使用优惠码:zhujicepingEDDB10G,可以获得: 免费升级10...

阿里云香港 16核32G 20M 999元/月

阿里云香港配置图提速啦是成立于2012年的十分老牌的一个商家这次给大家评测的是 阿里云香港 16核32G 20M 这款产品,单单说价格上就是十分的离谱原价8631元/月的现价只要 999元 而且还有个8折循环优惠。废话不多说直接进入正题。优惠时间 2021年8月20日-2021年9月20日 优惠码 wn789 8折优惠阿里云香港BGP专线 16核32G 10M带宽 优惠购买 399元购买链接阿里云...

georgedatacenter39美元/月$20/年/洛杉矶独立服务器美国VPS/可选洛杉矶/芝加哥/纽约/达拉斯机房/

georgedatacenter这次其实是两个促销,一是促销一款特价洛杉矶E3-1220 V5独服,性价比其实最高;另外还促销三款特价vps,georgedatacenter是一家成立于2019年的美国VPS商家,主营美国洛杉矶、芝加哥、达拉斯、新泽西、西雅图机房的VPS、邮件服务器和托管独立服务器业务。georgedatacenter的VPS采用KVM和VMware虚拟化,可以选择windows...

zookeeper为你推荐
移动开发做移动软件开发的工程师工资一般有多少计算机网络的定义计算机网络定义的三要素是什么?文件名长度文件名 过长 很长很长 如何更改文件名?余额宝收益走势图现在余额宝大概每万份收益是多少?文件保护Word文档写保护了不能再次修改了 怎么解除保护?ldap统一用户认证介绍NIPS是什么认证?qq空间播放器代码qq空间最新播放器代码怎样清除历史记录手机的历史记录怎么删除小时代发布会完整版《小时代3.0》签售发布会在哪举行?云电视是什么意思云电视怎么用机顶盒看数字电视
美国vps推荐 亚洲大于500m plesk 大容量存储 java空间 gg广告 中国智能物流骨干网 193邮箱 合租空间 adroit 阿里校园 中国电信宽带测速器 web服务器是什么 视频服务器是什么 可外链的相册 买空间网 闪讯网 湖南铁通 空间排行榜 apachetomcat 更多