zookeeper的基本使用+Linux

zookeeper:

1. zookeeper入门级介绍:

zookeeper是什么?

1) 用设计模式来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生改变,zookeeper就讲负责通知已经在zookeeper上注册的那些观察者做出相对应的反应,从而实现集群中类似Master/Slave管理模式。

此处的zookeeper和redis中的哨兵机制是一样的。

2)一句话解释:zookeeper=类似Linux文件系统+通知机制+Znode节点组成

3)zookeeper主要的作用:命名服务,配置维护,集群管理,分布式消息同步和协调机制,对Dubbo的支持

2. zookeeper的安装配置:

主要是通过CentOS虚拟机来进行安装;

一些Linux的基本命令,在这就不一一演示了,直接进入主题。(如果想了解的话,可以看看我的另外一篇关于Linux的博客。)

如果想在Linux中运行zookeeper的话,一定要安装jdk环境,安装jdk环境的方法也在上方的链接中。我已经为大家准备好了。亲测是可以正常使用的。

1)下载:可以直接通过apache.org中去下载。 http://apache.org/
在这里插入图片描述

上面图片列出了apache基金组织的全部软件,如果有需要的话可以直接到官网去进行下载。

2)自己创建一个文件夹命名为myzookeeper;然后将我们从官网下载好的后缀名为tar的包导入进去。

导入包有很多种方法,我是使用xshell,直接到指定的路径下面,让里边拖拽即可。

3)解压的指令:tar zxvf 文件名
在这里插入图片描述

上图是已经解压好的文件目录

注意点:如果是Linux中含有已经解压完成的文件夹,我们在复制的时候,一定要注意使用cp -r (文件名) (复制到的地址)。因为这个是文件夹中嵌套着文件夹,直接使用cp命令的话,不能复制过来。

我们下面主要演示的也是上面我标注的两个文件夹,一个是bin(服务端的启动,关闭和客户端启动的指令),另外一个是conf文件夹(zookeeper的一些基本的配置,主要是理解为主)

4)配置:(主要是讲解其中的一些配置的主要作用是什么)
在这里插入图片描述​ (1) tickTime:通信心跳数,zookeeper服务心跳时间,单位是毫秒

​ (2)initLimit:这个配置是用来配置zookeeper接收Follower客户端,初始化连接最长能忍受多少个心跳的时间间隔数。当已经超过10个心跳的时间之后,就表明这个客户端连接失败,总的时长就是10*2000=20秒

​ (3)syncLimit:LF同步通信时限,集群中Leader与Follower之间的最大响应时间单位。在运行过程中,Leader负责与zookeeper集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存货状态。通过检测机制来检测机器的存货状态。

​ (4)dataDir:数据文件目录+数据持久化路径。保存内存数据快照信息的位置,如果没有其他说明,更新的事务日志也保存到数据库。

​ (5)clientPort:是客户端的端口号。(如果设置了zookeeper集群的话,这一块的端口号是一定需要进行更改的)。

5)启动服务:

​ (1)首选需要到bin这个目录下:
在这里插入图片描述

zkCli.cmd 是window系统下客户端启动的指令

zkCli.sh 是Linux系统下客户端启动的指令

zkServer.cmd 是window系统下服务端启动的指令

zkServer.sh 是Linux系统下服务端启动的指令

启动zookeeper服务:
在这里插入图片描述

当出现Starting zookeeper … STARTED就表示我们已经启动服务器成功了。

启动客户端:(本人在启动客户端的时候,时间稍微较长,如果出现类似的问题,请不要着急)

启动指令:./zkCli.sh
在这里插入图片描述当出现上面的Welcome to Zookeeper的时候,就表示我们已经把客户端正常启动起来了

退出的话直接输入quit即可
在这里插入图片描述在这里插入图片描述
每个节点的解释:

czxid- 引起这个znode创建的zxid,创建节点的事务的zxid(ZooKeeper Transaction Id)

ctime - znode被创建的毫秒数(从1970年开始)

mzxid - znode最后更新的zxid

mtime - znode最后修改的毫秒数(从1970年开始)

pZxid-znode最后更新的子节点zxid

cversion - znode子节点变化号,znode子节点修改次数

dataversion - znode数据变化号

aclVersion - znode访问控制列表的变化号

ephemeralOwner- 如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0。

dataLength- znode的数据长度

numChildren - znode子节点数量

重点来了上述的类型,就是我们在一开始说到的 类似Linux文件系统+通知机制+Znode节点组成

上述的就是Znode节点。

Znode的组成:路径+值+stat结构

类似Linux文件系统

所使用的数据模型风格很像文件系统的目录树结构,简单来说,有点类似window中注册表的结构。有名称,有树节点,有key(键)/value(值)对的关系。可以看做一个树形结构的数据库,分步在不同的机器上做名称管理。

6)zkCli中使用的基本命令:
在这里插入图片描述

注意:只要输入不在指令中的任意指令,帮助的指令就会出现。

基本上的意思就是和我们字面的意思是一样的,下面只介绍几个特殊的部分:

create :是普通的创建

create -s 含有序列:会按照我们的想法,逐渐的去添加,和mysql数据库中主键的意思是一样的,是一个主键递增的状态。

常用的四字命令:

补充:

检查当前服务的状态的几种方法:

ps -ef|grep zookeeper

netstat -anp|grep 2181

echo ruok | nc 127.0.0.1 2181

ruok:测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应

stat:输出关于性能和连接的客户端的列表

conf:输出相关服务配置的详细信息

cons:列出所有连接到服务器的客户端的完全的连接 /会话的详细信息。包括“接受 / 发送”的包数量、会话id 、操作延迟、最后的操作执行等等信息

dump:列出未经处理的会话和临时节点

envi:输出关于服务环境的详细信息(区别于conf命令)

reqs:列出未经处理的请求

wchs:列出服务器watch的详细信息

wchc:通过session列出服务器watch的详细信息,它的输出是一个与watch相关的会话的列表

wchp:通过路径列出服务器 watch的详细信息。它输出一个与 session相关的路径

3.通知机制:

watch:通知机制:客户端之策监听它关心的目录节点,当目录接地那发生变化(数据改变、删除、子目录节点增删改查)时,zookeeper会通知客户端。

主要是观察者的功能。一句话就是雨布回调的触发机制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值