微禾游戏 手游攻略 手游评测 ZooKeeper单机版、伪集群及集群环境搭建

ZooKeeper单机版、伪集群及集群环境搭建

时间:2024-12-30 14:24:03 来源:其他 浏览:0

ZooKeeper 安装模式主要有以下三种:

单机版(Standalone mode)模式:只有一个ZooKeeper服务伪集群模式:一台机器上多个ZooKeeper服务集群模式:多台机器多个ZooKeeper服务

1 单机版(Standalone模式)安装

ZooKeeper官网下载地址:http://zookeeper.apache.org/releases.html 下载

如图所示继续:

需要注意的一件事是,如果您不想成为小白鼠,请务必下载稳定版本。安装非稳定版本时可能会出现各种未知的异常。

1.1 下载安装包

输入以下命令:

wgethttps://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz 如下所示:

1.2 解压安装包

tar-zxvfapache-zookeeper-3.4.14.tar.gz 解压完成后,将解压包移动到/usr目录下:

mvapache-zookeeper-3.4.14/usr/并将apache-zookeeper-3.4.14 重命名为Zookeeper-3.4.14。

此时可以看到ZooKeeper的目录结构如下:

[root@instance-e5cf5719zookeeper-3.4.14]#lsbindataivy.xmllogsREADME.mdzookeeper-3.4.14.jarzookeeper-3.4.14.jar.sha1zookeeper-docszookeeper-recipesbuild.xmldist-mavenlibNOTICE.txtREADME_packaging.txtzookeeper-3.4.14.jar。 asczookeeper-clientzookeeper-itzookeeper-serverconfivysettings.xmlLICENSE.txtpom.xmlsrczookeeper-3.4.14.jar.md5zookeeper-contribzookeeper-jutebin目录——zk可执行脚本目录,包括zk服务进程、zk客户端等脚本。其中.sh是Linux环境下的脚本,cmd是Windows环境下的脚本。 conf目录—— 配置文件目录。 Zoo_sample.cfg是示例配置文件,需要修改为自己的名称,通常为zoo.cfg。 log4j.properties是日志配置文件。

1.3 设置zoo.cfg

ZooKeeper单机版、伪集群及集群环境搭建

进入/usr/zookeeper-3.4.14/conf目录,可以看到zoo_sample.cfg。这是一个示例配置文件,需要根据您自己的情况进行修改。通用命令是zoo.cfg。

cpzoo_sample.cfgzoo.cfg 可以查看zoo.cfg文件的内容:

#ThenumberofmillisecondsofeachticktickTime=2000 #Thenumberofticksthattheinitial #synchronizationphasecantakeinitLimit=10 #Thenumberofticksthatcanpass Between #sendingarequestandgettinganacknowledgementsyncLimit=5 #存储快照的目录。 #不要使用/tmp进行存储,/tmphere只是#examplesakes.dataDir=/tmp/zookeeper#客户端将连接的端口clientPort=2181#themaximumnumberofclientconnections.#increasethisifyouneedtohandlemoreclients#maxClientCnxns=60##在开启自动清除之前请务必阅读#administratorguide的维护部分。##http://zookeeper。 apache.org/doc/current/zookeeperAdmin.html #sc_maintenance##ThenumberofsnapshotstoretainindataDir#autopurge.snapRetainCount=3#Purgetaskintervalinhours#Setto'0'todisableautopurgefeature#autopurge.purgeInterval=1 看上去好复杂的感觉,其实去掉注释后就只有几行:

tickTime=2000initLimit=10syncLimit=5dataDir=/tmp/zookeeperclientPort=2181tickTime=2000:通俗地称为tick time,即心跳间隔。默认为2000毫秒,即每两秒一次心跳。 tickTime是一个时间计量单位,用于维护客户端与服务器之间或者服务器与服务器之间的心跳,即每个tickTime发送一次心跳。心跳功能:监控机器的工作状态。 follower和leader之间的通信时间是通过心跳来控制的。默认情况下,他们(follower和leader)的会话长度是心跳间隔的两倍,即2*tickTime。 initLimit=10:在启动过程中,follower会同步leader的所有最新数据,然后确定自己可以对外服务的起始状态。 Leader允许follower在initLimit时间内完成工作。默认值为10,即10*tickTime。默认情况下,无需修改该配置项。随着ZooKeeper集群管理数量的不断增加,当follower节点启动时,从leader节点同步数据的时间也会相应变长,从而无法在短时间内同步。完成数据同步。这种情况下,需要适当增大该参数。 syncLimit=5:Leader节点和Follower节点之间心跳检测的最大延迟时间。在ZooKeeper集群中,Leader节点会与所有Follower节点进行心跳检测,以确认节点是否存活。默认值为5,即5*tickTime。 dataDir=/tmp/zookeeper:ZooKeeper服务器默认存储快照文件的目录。 /tmp目录下的文件可能会被自动删除并且很容易丢失。需要修改存储目录。 clientPort=2181: 客户端连接ZooKeeper服务器的端口。 ZooKeeper会监听这个端口并接收客户端的访问请求。温馨提醒:大家一定要学会阅读官方文档,获取第一手资料。虽然是英文,但词汇和语法都比较简单,容易理解。官网介绍如下:

tickTime : ZooKeeper 使用的基本时间单位(以毫秒为单位)。它用于进行心跳,最小会话超时将是tickTime 的两倍。 dataDir : 存储内存数据库快照的位置,除非另有指定,否则存储数据库更新的事务日志。 clientPort : 监听客户端连接的端口

在zookeeper-3.4.14目录下创建数据和日志文件,如下:

[root@instance-e5cf5719zookeeper-3.4.14]#mkdirdata[root@instance-e5cf5719zookeeper-3.4.14]#mkdirlogs官方文档也对此进行了解释,指出在生产环境中,ZooKeeper会长时间运行,并且ZooKeeper的存储是需要一个特殊的文件位置来存储dataDir和日志。 data文件夹用于存放内存数据库快照,集群的myid文件也存放在该文件夹中。

对于长时间运行的生产系统,ZooKeeper 存储必须在外部进行管理(dataDir 和日志)。

修改后的zoo.cfg如下:

#ThenumberofmillisecondsofeachticktickTime=2000 #Thenumberofticksthattheinitial #synchronizationphasecantakeinitLimit=10 #Thenumberofticksthatcanpass Between #sendingarequestandgettinganacknowledgementsyncLimit=5 #存储快照的目录。 #不要使用/tmpforstorage,/tmphereisjust#examplesakes。 #dataDir=/tmp/zookeeper#数据文件夹dataDir=/usr/zookeeper-3.4.14 /data#日志文件夹dataLogDir=/usr/zookeeper-3.4.14/logs#theportatwhichtheclientswillconnectclientPort=2181#themaximumnumberofclientconnections.#increasethisifyouneedtohandlemoreclients#maxClientCnxns=60 ##在开启自动清除之前,请务必阅读#管理员指南的维护部分。##http://zookeeper .apache.org/doc/current/zookeeperAdmin .html#sc_maintenance##DataDir 中的快照存储数量#autopurge.snapRetainCount=3#Purgetaskintervalinhours#设置为“0”以禁用自动清除功能#autopurge.purgeInterval=1 33 360

1.4 启动

输入ZooKeeper bin 目录:

[root@instance-e5cf5719zookeeper-3.4.14]#cdbin/[root@instance-e5cf5719bin]#lsREADME.txtzkCleanup.shzkCli.cmdzkCli.shzkEnv.cmdzkEnv.shzkServer.cmdzkServer.shzkTxnLogToolkit.cmdzkTxnLogToolkit.shzoo keeper.outzkCleanup.sh : 使用过用于清理ZooKeeper的历史数据,包括事务日志文件和快照数据文件zkCli.sh:连接ZooKeeper服务器的命令行客户端zkEnv.sh:设置环境变量zkServer.sh:启动ZooKeeper服务器启动ZooKeeper:

./zkServer.shstart启动成功如下图:

ZooKeeper单机版、伪集群及集群环境搭建

您可以检查ZooKeeper的状态:

./zkServer.shstatus状态信息如下所示:

可以通过help查看./zkServer.sh下的命令

[root@instance-e5cf5719bin]#./zkServer.shhelpZooKeeperJMXenabledbydefaultUsingconfig:/usr/zookeeper-3.4.14/bin/./conf/zoo.cfgUsage:/zkServer.sh{start|start-foreground|stop|restart|status| update|print-cmd}start: start,用于在后台启动ZooKeeper服务器start-foreground: 在前台启动服务器stop: stop restart: 重新启动status: 获取状态upgrade: 升级print-cmd: 打印ZooKeeper程序命令线路及相关参数

1.5 连接ZooKeeper客户端

继续连接:

./zkCli.sh-server127.0.0.1:2181 即

./zkCli.sh-serverip:port 结果如下:

您可以通过帮助获取更多相关命令:

[zk:127.0.0.1:2181(已连接)0]helpZooKeeper-serverhost:portcmdargsstatpath[watch]setpathdata[版本]lspath[watch]delquota[-n|-b]pathls2path[watch]setAclpathaclsetquota-n|-bvalpathhistoryredocmdnoprintwatcheson|offdeletepath[版本]syn c pathlistquotapathrmrpathgetpath [ watch]create[-s][-e]pathdataacladdauthschemeauthquitgetAclpathcloseconnecthost:port 命令说明help 显示所有操作命令stat 查看节点状态,即判断节点是否存在set update node data get 获取节点数据ls path [watch] 使用ls 命令查看当前znode内容创建是否正常创建; -s 包含序列; -e 是临时的(重启或者超时后消失) delete 删除节点rmr 递归删除节点

您可以对相关命令进行一些简单的测试。首先创建一个新的znode(运行create /zk_test my_data),其中包含的信息是“my_data”。

[zk:127.0.0.1:2181(CONNECTED)1]create/zk_testmy_dataCreated/zk_test[zk:127.0.0.1:2181(CONNECTED)2]ls/[zookeeper,zk_test] 可以看到zk_test创建成功。可以使用get命令查看zk_test节点中的信息:

[zk:127.0.0.1:2181(已连接)3]get/zk_testmy_datacZxid=0x7ctime=ThuDec0516:32:20CST2019mZxid=0x7mtime=ThuDec0516:32:20CST2019p Z xid=0x7cversion=0dataVersion=0aclVersion=0ephemeralOwner=0x0dataLength=7numChildren=0 zk_test中的信息可以通过set修改。

[zk:127.0.0.1:2181(已连接)4]set/zk_testjunkcZxid=0x7ctime=ThuDec0516:32:20CST2019mZxid=0x8mtime=ThuDec0516:37:03CST2019pZxi d=0x7cversion=0dataVersion=1aclVersion=0ephemeralOwner=0x0dataLength=4numChildren=0[zk:127.0.0.1:2181(已连接)5]get/zk_testjunkcZxid=0x7ctime=ThuDec0516:32:20CST2019mZxid=0x8mtime=ThuDec0516:37:03CST2019pZxid=0x7cversion=0dataVersion=1aclVersion=0ephemeralOwner=0x0dataLength=4num Children=0 可以通过delete删除节点。

ZooKeeper单机版、伪集群及集群环境搭建

[zk:127.0.0.1:2181(CONNECTED)6]delete/zk_test[zk:127.0.0.1:2181(CONNECTED)7]ls/[zookeeper]

2 伪集群搭建

修改3个ZooKeeper中的/conf/zoo.cfg,主要修改3个位置:端口编号、日志路径、集群配置。

在zoo.cfg配置中,添加了一组服务器配置,表示ZooKeeper集群中有3个节点。服务器配置格式如下:

server.myid=IP:Port1:Port2myid:是节点的编号。该数字的取值范围是1-255之间的整数,并且在集群中必须是唯一的。 IP:表示节点的IP地址,如本地环境中的127.0.0.1或localhost。 Port1:Leader节点和Follower节点用于心跳检测和数据同步的端口。 Port2:Leader选举过程中用于投票通信的端口。如果是伪集群配置,由于IP地址相同,不同Zookeeper实例的通信端口号不能相同,必须分配不同的端口号。

在每个ZooKeeper文件的/data目录下创建一个myid文件。 myid文件只需要有服务器编号(如1、2、3)。

分别启动三个ZooKeeper服务(打开3个窗口启动服务)。

结果如下:

Zookeeper-3.4.14[root@instance-e5cf5719bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/zookeeper-3.4.14/bin/./conf/zoo.cfgStartingzookeeper.已启动[root@instance-e5cf5719bin]#。 /zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/zookeeper-3.4.14/bin/./conf/zoo.cfgMode:followerzookeeper-3.4.14-1[root@instance-e5cf5719bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig :/usr/zo okeeper-3.4。 14 -1/bin/./conf/zoo.cfgStartingzookeeper.已启动[root@instance-e5cf5719bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/zookeeper-3.4.14-1/bin/./conf/zoo 。 cfgMode:leaderzookeeper-3.4.14-2[root@instance-e5cf5719bin]#./zkServer.shstartZooKeeperJMX默认启用Usingconfig:/usr/zookeeper-3.4.14-2/bin/./conf/zoo.cfgStartingzookeeper.已启动[root@instance- e5cf5719bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/zookeeper-3.4.14-2/bin/./conf/zoo.cfgMode:follower 通过查看状态可以看到zookeeper-3.4.14-1是leader和zookeeper -3.4.14和zookeeper-3.4.14-2是关注者。

可以参考官网的架构图来帮助理解。

停止zookeeper-3.4.14-1以观察leader重新选举。

[root@instance-e5cf5719bin]#./zkServer.shstopZooKeeperJMXenabledbydefaultUsingconfig:/usr/zookeeper-3.4.14-1/bin/./conf/zoo.cfgStoppingzookeeper.STOPPED 分别检查zookeeper-3.4.14和zookeeper-3.4。 14-2状态。

[root@instance-e5cf5719bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/zookeeper-3.4.14/bin/./conf/zoo.cfgMode:follower[root@instance-e5cf5719bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/zookeeper - 3.4.14-2/bin/./conf/zoo.cfgMode:leader 可以看到zookeeper-3.4.14-2已经成为leader。

用户评论

凉月流沐@

这篇文章太棒了!终于搞懂了ZooKeeper单机版、伪集群和集群环境的搭建,之前一直卡在集群环境配置上,现在终于可以顺利运行了!

    有16位网友表示赞同!

断桥残雪

感觉文章写的有点干巴巴的,感觉缺少一些实际应用场景的例子,比如 ZooKeeper 在实际项目中的应用场景是什么?

    有20位网友表示赞同!

軨倾词

文章写的很详细,涵盖了ZooKeeper单机版、伪集群和集群环境搭建的各个方面,非常适合初学者入门学*。

    有13位网友表示赞同!

伤离别

作为一名老司机,文章内容对我来说过于基础,不过对于新手来说应该很有帮助,毕竟ZooKeeper 的入门还是比较复杂的。

    有17位网友表示赞同!

棃海

文章的排版和结构都很好,内容清晰易懂,对新手来说非常友好,作者辛苦了!

    有6位网友表示赞同!

繁华若梦

这篇文章解释了ZooKeeper单机版、伪集群和集群环境搭建的原理,但我还是有点不太理解集群环境下数据一致性的问题,希望作者可以详细解释一下。

    有11位网友表示赞同!

龙卷风卷走爱情

作者能不能再详细解释一下ZooKeeper 集群环境下数据一致性的问题,以及如何保证数据的一致性?

    有16位网友表示赞同!

夜晟洛

文章内容很实用,我按照文章的步骤成功搭建了ZooKeeper集群环境,感谢作者的分享!

    有15位网友表示赞同!

烬陌袅

感觉文章内容有点过于理论化,缺少一些实战案例,比如如何使用ZooKeeper来实现分布式锁?

    有12位网友表示赞同!

野兽之美

作为一名入门者,这篇文章对我来说非常有用,让我对ZooKeeper 的概念和应用场景有了更深的理解。

    有5位网友表示赞同!

丢了爱情i

感觉文章中缺少一些代码示例,如果能加入一些代码示例,会更容易理解。

    有9位网友表示赞同!

矜暮

ZooKeeper 的集群环境搭建确实挺复杂的,这篇文章解释的很清楚,让我对 ZooKeeper 有了更深入的理解。

    有20位网友表示赞同!

为爱放弃

文章写得很好,内容很详细,但感觉有点冗长,可以考虑精简一些内容,提高文章的阅读效率。

    有17位网友表示赞同!

孤独症

文章内容太基础了,希望作者能够分享一些更高级的应用场景,比如 ZooKeeper在微服务架构中的应用?

    有9位网友表示赞同!

浅嫣婉语

这篇文章讲解了ZooKeeper单机版、伪集群和集群环境搭建,感觉作者对ZooKeeper 非常熟悉,可以看出作者对这个领域的研究很深入。

    有9位网友表示赞同!

轨迹!

文章内容很不错,但感觉缺少一些图表和图片,如果能加入一些图表和图片,会更直观易懂。

    有10位网友表示赞同!

致命伤

文章内容很实用,但我还是建议作者在文章中添加一些安全方面的知识,比如 ZooKeeper 的安全配置和授权管理。

    有16位网友表示赞同!

爱情的过失

感觉文章缺少一些关于ZooKeeper 集群监控和管理方面的介绍,希望作者能补充这方面的知识。

    有7位网友表示赞同!

浅笑√倾城

这篇文章让我对ZooKeeper 产生了浓厚的兴趣,我打算深入学*一下ZooKeeper,希望作者能够继续分享更多关于ZooKeeper 的知识。

    有11位网友表示赞同!

泪湿青衫

文章的排版和结构都很好,内容清晰易懂,但是感觉缺少一些案例分析,希望作者能够分享一些实际应用案例。

    有20位网友表示赞同!

标题:ZooKeeper单机版、伪集群及集群环境搭建
链接:https://www.52funs.com/news/sypc/30093.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
《向僵尸开炮》那些质变技能的前置词条具体内容详解!有最新礼包码!

估计大部分宝子们和小猪一样,在局内选择词条的时候,只看词条的具体内容不看词条的名称,那么本期就给宝子们整理

2024-12-30
DNF手游:第二套天空套来袭!动图展示!这里面有你喜欢的吗?

截止到目前韩服dnf手游一共上线了4套天空套 而国服目前仅上线了第一套”冥域天空“ 按照韩服的时间线,国服的

2024-12-30
人与动人物xxxx在线视频,人与动物:共生的世界

人与动物:共生的世界 在我们的生活中,有许多时候我们会被动物所吸引,无论是它们的可爱、勇敢还是聪明。我们

2024-12-30
黑神话悟空抢先版:吉吉国王成天命人?到底是怎么回事?

黑神话悟空竟然有抢先版?不仅有!而且作者还在不断更新,但是游戏和黑神话有什么关联呢?真正进游戏一探究竟的玩家

2024-12-30