关于安装和操作因为很早之前我就配置过类似的在同一台服务器下搭建了一个伪集群,所以这次自己也就没有再重新安装了一次,只是把收集到的资料进行了整理。
安装
zookeeper 有两种运行模式:集群模式和单击模式。
下载zookeeper 安装包:
http://apache.fayea.com/zookeeper/
下载完成,通过tar -zxvf 解压
常用命令
- 启动ZK 服务:
bin/zkServer.sh start - 查看ZK 服务状态:
bin/zkServer.sh status - 停止ZK 服务:
bin/zkServer.sh stop - 重启ZK 服务:
bin/zkServer.sh restart - 连接服务器
zkCli.sh -timeout 0 -r -server ip:port
单机环境安装
一般情况下,在开发测试环境,没有这么多资源的情况下,而且也不需要特别好的稳定性的前提下,我们可以使用单机部署;
初次使用zookeeper , 需要将conf 目录下的zoo_sample.cfg 文件copy 一份重命名为zoo.cfg修改dataDir 目录,dataDir 表示日志文件存放的路径。
集群环境安装
在zookeeper 集群中,各个节点总共有三种角色,分别是:
leader,follower,observer
集群模式我们采用模拟3 台机器来搭建zookeeper 集群。
分别复制安装包到三台机器上并解压,同时copy 一份
zoo.cfg。
- 修改配置文件
修改端口
server.1=IP1:2888:3888 【2888:访问zookeeper 的端口;
3888:重新选举leader 的端口】
server.2=IP2.2888:3888
server.3=IP3.2888:2888
server.A=B:C:D:
其 中A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的 ip 地址;
C 表示的是这个服务器与集群中的 Leader服务器交换信息的端口;
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
在集群模式下,集群中每台机器都需要感知到整个集群是由哪几台机器组成的, 配置文件中,按照格式位置server.id=host:port:port,每一行代表一个机器配置id: 指的是server ID,用来标识该机器在集群中的机器序号。
-
新建datadir 目录,设置myid在每台zookeeper 机器上,我们都需要在数据目录(dataDir)下创建一个myid 文件,该文件只有一行内容,对应每台机器的Server ID 数字;比如server.1 的myid 文件内容就是1。【必须确保每个服务器的myid 文件中的数字不同,并且和自己所在机器的zoo.cfg 中server.id 的id 值一致,id 的范围是1~255】
-
启动zookeeper
带Observer 角色的集群Observer:在不影响写性能的情况下扩展zookeeper本身zookeeper 的集群性能已经很好了,但是如果超大量
的客户端访问,就势必需要增加zookeeper 集群的服务器数量,而随着服务器的增加,zookeeper 集群的写性能就会下降;zookeeper 中znode 的变更需要半数及以上服务器投票通过,而随着机器的增加,由于网络消耗等原因必定会导致投票成本增加。也就导致性能下降的结果。
感谢您阅读我的文章,整理不易,帮我点个赞,谢谢哈。
如果对文章部分还有什么见解或者疑惑,可以私信评论我,欢迎技术讨论。可以加我微信z985085305,获取我整理的一些其他的笔记。
思想的碰撞最能促进技术的进步哦。
网友评论