ZooKeeper状态以及状态的转换

  • 一个会话从NOT_CONNECTED状态开始,当客户端初始化后转换成CONNECTTING状态(箭头1)。

  • 当客服端与服务器断开连接,状态转换成CONNECTED状态(箭头2)。

  • 当客服端与服务器断开连接或者无法接收到服务器的响应时,就会转换回CONNECTING状态(箭头3)并尝试发现其他服务器。

  • 如果发现了另外一个服务器或者重连到原来的服务器,当服务器确认会话有效之后,状态回转换回CONNECTED状态。否则,转换成CLOSED状态。应用也可以显示地关闭会话(箭头45)。

 

Clinet连接、断开Server

可以通过zkCli简单的对ZooKeeper进行访问,数据创建,数据修改等操作。连接服务器命令行如下:

zkCli.sh -server 127.0.0.1:2181

 

说明:127.0.0.1是本地的IP,2181是访问端口,可以在配置文件中修改端口号。连接后会显示连接的详细信息,并进入可以操作的ZooKeeper命令终端(如下图所示)。

 

如果在ZooKeeper服务器运行在standalone模式下,可以直接使用以下命令连接Server(不建议使用):

zkCli.sh

 

上述命令使用的端口号为2181,如果ZooKeeper端口号配置不是2181(此时clientPort=2182),将会拒绝连接,如下图所示:

 

断开ClientServer连接,直接使用quit退出ZooKeeper命令行界面即可。

 

编程要求

本关任务是使用命令行,进行以下操作:

  • 修改ZooKeeper配置(安装目录为/opt/zookeeper-3.4.12),将端口改为2182

  • 添加preAllocSize配置项,值为300


vi /opt/zookeeper-3.4.12/conf/zoo.cfg

clientPort=2182

preAllocSize=300

  • 日志输出路径修改为/opt/zookeeper-3.4.12(修改zkEnv.sh)。

vi /opt/zookeeper-3.4.12/bin/zkEnv.sh

<!--修改ZOO_LOG_DIR-->
ZOO_LOG_DIR="/opt/zookeeper-3.4.12"
  • 启动服务器,并通过zkCli.sh建立与Server的连接(启动服务器之前确保服务器处于关闭状态,可通过status查看服务器状态)。

zkServer.sh start
zkCli.sh -server 127.0.0.1:2182

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐