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

DiyVM独立服务器:香港沙田服务器,5M带宽CN2线路,L5630*2/16G内存/120G SSD硬盘,499元/月

diyvm怎么样?diyvm商家VPS主机均2GB内存起步,三个地区机房可选,使用优惠码后每月69元起;DiyVM独立服务器开设在香港沙田电信机房,CN2线路,5M带宽,自动化开通上架,最低499元/月,配置是L5630*2/16G内存/120G SSD硬盘。DiyVM是一家成立于2009年的国人主机商,提供的产品包括VPS主机、独立服务器租用等,产品数据中心包括中国香港、日本大阪和美国洛杉矶等,...

Sharktech($49/月),10G端口 32GB内存,鲨鱼机房新用户赠送$50

Sharktech 鲨鱼机房商家我们是不是算比较熟悉的,因为有很多的服务商渠道的高防服务器都是拿他们家的机器然后部署高防VPS主机的,不过这几年Sharktech商家有自己直接销售云服务器产品,比如看到有新增公有云主机有促销活动,一般有人可能买回去自己搭建虚拟主机拆分销售的,有的也是自用的。有看到不少网友在分享到鲨鱼机房商家促销活动期间,有赠送开通公有云主机$50,可以购买最低配置的,$49/月的...

7月RAKsmart独立服务器和站群服务器多款促销 G口不限量更低

如果我们熟悉RAKsmart商家促销活动的应该是清楚的,每个月的活动看似基本上一致。但是有一些新品或者每个月还是有一些各自的特点的。比如七月份爆款I3-2120仅30美金、V4新品上市,活动期间5折、洛杉矶+硅谷+香港+日本站群恢复销售、G口不限流量服务器比六月份折扣力度更低。RAKsmart 商家这个月依旧还是以独立服务器和站群服务器为主。当然也包括有部分的低至1.99美元的VPS主机。第一、I...

zookeeper为你推荐
监听如何在手机里装监听制作证书怎么做证书?查看加密空间请问下怎么看加密的qq空间软件更新不可用我的手机系统更新时候出现您的设备已修改,软件更新不可用S3(sch-939d)反恐精英维护到几点反恐精英OL要从几点维护到几点?网络黑科技网络刷单骗局怎样下载文件百度云网盘只有提取码怎么下文件怎样清除历史记录怎么清空历史纪录呀wps表格数据恢复Wps表格怎么恢复数据手机证书申请手机证书可以再什么网站上申请啊
青岛虚拟主机 个人域名注册 汉邦高科域名注册 vps教程 lnmp lamp安装 securitycenter 美国主机评论 京东云擎 智能骨干网 phpmyadmin配置 卡巴斯基免费试用版 drupal安装 丽萨 云服务是什么意思 国外代理服务器 免费主页空间 windowssever2008 百度新闻源申请 认证机构 更多