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:新上1Gbps带宽KVM主机$21/年起,AMD Ryzen CPU+NVMe高性能主机$24/年起_韩国便宜服务器

我们在去年12月分享过Hosteons新上AMD Ryzen9 3900X CPU及DDR4内存、NVMe硬盘的高性能VPS产品的消息,目前商家再次发布了产品更新信息,暂停新开100M带宽KVM套餐,新订单转而升级为新的Budget KVM VPS(SSD)系列,带宽为1Gbps端口,且配置大幅升级,目前100M带宽仅保留OpenVZ架构产品可新订购,所有原有主机不变,用户一直续费一直可用。Bud...

恒创科技SonderCloud,美国VPS综合性能测评报告,美国洛杉矶机房,CN2+BGP优质线路,2核4G内存10Mbps带宽,适用于稳定建站业务需求

最近主机参考拿到了一台恒创科技的美国VPS云服务器测试机器,那具体恒创科技美国云服务器性能到底怎么样呢?主机参考进行了一番VPS测评,大家可以参考一下,总体来说还是非常不错的,是值得购买的。非常适用于稳定建站业务需求。恒创科技服务器怎么样?恒创科技服务器好不好?henghost怎么样?henghost值不值得购买?SonderCloud服务器好不好?恒创科技henghost值不值得购买?恒创科技是...

spinservers:10Gbps带宽高配服务器月付89美元起,达拉斯/圣何塞机房

spinservers是一家主营国外服务器租用和Hybrid Dedicated等产品的商家,Majestic Hosting Solutions LLC旗下站点,商家数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,且硬件配置较高。目前,主机商针对达拉斯机房机器提供优惠码,最低款Dual E5-2630L v2+64G+1.6TB SSD月付89美元起,支持PayPal、支付宝等...

zookeeper为你推荐
自己动手写操作系统怎么去写一个操作系统u盾证书“U盾”和“数字证书”有什么区别?高级工程师证书查询如何查工程师证混乱模式混乱模式的对应一览混乱模式植物大战僵尸中怎么用混乱模式开启隐藏关?特别是隐藏小游戏.听说要改什么文件名,但是怎么改?改后怎么进...2017双112017年双11有哪些值得购买的商品大数据人才培养人才管理要怎么用好大数据宽带包月宽带可以按月办吗宽带包月宽带包月一月多少钱?伙伴云毒霸中的云安全指的是什么意思?
vps服务器租用 java主机 20g硬盘 godaddy cpanel空间 ftp教程 鲁诺 视频服务器是什么 上海电信测速 域名和主机 rewritecond google搜索打不开 腾讯云平台 ncp是什么 服务器是什么意思 symantec 超低价 日本小学生 神棍节 vim 更多