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

Puaex:香港vds,wtt套餐,G口带宽不限流量;可解流媒体,限量补货

puaex怎么样?puaex是一家去年成立的国人商家,本站也分享过几次,他家主要销售香港商宽的套餐,给的全部为G口带宽,而且是不限流量的,目前有WTT和HKBN两种线路的方面,虽然商家的价格比较贵,但是每次补一些货,就会被抢空,之前一直都是断货的状态,目前商家进行了补货,有需要这种类型机器的朋友可以入手。点击进入:puaex商家官方网站Puaex香港vds套餐:全部为KVM虚拟架构,G口的带宽,可...

LightNode($7.71/月)香港cn2精品线路

LightNode官网LightNode是一家位于香港的VPS服务商.提供基于KVM虚拟化技术的VPS.在提供全球常见节点的同时,还具备东南亚地区、中国香港等边缘节点.满足开发者建站,游戏应用,外贸电商等应用场景的需求。为用户带来高性能服务器以及优质的服务的同时还提供丰厚的促销活动,新用户注册最高送$20。注册用户带新客即可得10%返佣。商家支持PayPal,支付宝等支付方式。官网:https:/...

CloudCone中国新年特别套餐,洛杉矶1G内存VPS年付13.5美元起

CloudCone针对中国农历新年推出了几款特别套餐, 其中2019年前注册的用户可以以13.5美元/年的价格购买一款1G内存特价套餐,以及另外提供了两款不限制注册时间的用户可购买年付套餐。CloudCone是Quadcone旗下成立于2017年的子品牌,提供VPS及独立服务器租用,也是较早提供按小时计费VPS的商家之一,支持使用PayPal或者支付宝等付款方式。下面列出几款特别套餐配置信息。CP...

zookeeper为你推荐
卖源码想做个竞拍网有人卖源码吗?增值税专用发票和增值税普通发票的区别普通增值税发票和专用增值税发票有区别吗?方便快捷方便快捷的食物做法查看加密空间怎么看加密的qq空间呼叫中心系统方案呼叫中心方案一般包括哪几个方面access数据库入门access 基础书wps表格数据恢复WPS表格如果变成这样怎么恢复本地连接断开本地连接老是自动断开是怎么回事?程序文件源程序文件是什么手机证书申请手机证书申请
网址域名注册 国外vps租用 godaddy优惠码 国外bt 域名优惠码 南昌服务器托管 空间论坛 jsp空间 域名和空间 hkt 搜索引擎提交入口 东莞服务器 网购分享 重庆电信服务器托管 什么是web服务器 镇江高防 摩尔庄园注册 服务器硬件配置 广州服务器托管 双11促销 更多