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方法中的业务逻辑

HostWebis:美国/法国便宜服务器,100Mbps不限流量,高配置大硬盘,$44/月起

hostwebis怎么样?hostwebis昨天在webhosting发布了几款美国高配置大硬盘机器,但报价需要联系客服。看了下该商家的其它产品,发现几款美国服务器、法国服务器还比较实惠,100Mbps不限流量,高配置大硬盘,$44/月起,有兴趣的可以关注一下。HostWebis是一家国外主机品牌,官网宣称1998年就成立了,根据目标市场的不同,以不同品牌名称提供网络托管服务。2003年,通过与W...

Hostodo美国独立日优惠套餐年付13.99美元起,拉斯维加斯/迈阿密机房

Hostodo又发布了几款针对7月4日美国独立日的优惠套餐(Independence Day Super Sale),均为年付,基于KVM架构,采用NVMe硬盘,最低13.99美元起,可选拉斯维加斯或者迈阿密机房。这是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,产品性能一般,支持使用PayPal或者支付宝等付款方式。商家客服响应也比较一般,推...

无忧云:洛阳BGP云服务器低至38.4元/月起;雅安高防云服务器/高防物理机优惠

无忧云怎么样?无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。一、无忧云官网点击此处进入无忧云官方网站二...

zookeeper为你推荐
公告格式通知的格式。宵云< >感交集 <>宵云外 <>海为家 <>思而行 <>窍生烟 <>面威风u盾证书U盾证书怎么用360网络收藏夹360浏览器的网络收藏夹怎么导出啊?通话宝谁用过4G电话宝,这个软件怎么样啊?网通玩电信游戏卡怎么办玩英雄联盟家里是网通的,玩电信区很卡怎么办照片ps是什么意思PS照片是什么意思?ldap统一用户认证介绍NIPS是什么认证?企业电子邮箱注册如何去注册企业邮箱人工电源网络EMC测试的介绍
vps租用 万网域名证书查询 187邮箱 Vultr 外国域名 512m内存 网页背景图片 777te 我爱水煮鱼 秒杀预告 nerds 免费申请网站 t云 33456 服务器维护 免费asp空间 iki 免费网络空间 如何登陆阿里云邮箱 后门 更多