Zookeeper与Dubbo微服务实战之Zookeeper篇

文章目录

zookeeper环境搭建

linux下jdk环境搭建

一、安装jdk
jdk1.8.0_211链接
zookeeper链接,新版本只有带bin的是编译过的更是我们需要的,另一个版本只是源码
1、将jdk和zookeeper通过ftp转移到linux /home下
2、解压jdk和zookeeper到/usr/和/usr/local下
解压jdk和zookeeper
tar -zxvf ....jdk
tar -zxvf ...zookeeper
修改解压之后的jdk和zookeeper的名字
mv XXX jdk8
mv YYY zookeeper
转移jdk和zookeeper
mv jdk8 /usr
mv zookeeper /usr/local
2、配置jdk和zookeeper环境变量
修改配置文件 vim /etc/profile
export JAVA_HOME=/usr/jdk8
export ZOOKEEPER_HOME=/usr/local/zookeeper
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
配置完环境变量测试一下是否成功
测试之前先刷新配置文件
source /etc/profile
//测试
java -version
二、zookeeper配置文件
复制zookeeper/conf/zookeeper.cfg文件

cp zookeeper.cfg zoo.cfg

1、tickTime

Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔。 也就是每隔 tickTime 时间就会发送一个心跳。以毫秒为单位,比如session超时 N*tickTime

2、initLimit

用于集群,允许从节点链接并同步到master节点的初始化连接时间,以tickTime的倍数来表示。

3、syncLimit

用于集群,master主节点与从节点之间发送消息,请求和应答时间长度(心跳机制),超时从节点就会被抛弃

4、dataDir

必须配置
但是不能配置到临时文件夹里面
dataDir=/tmp/zookeeper
修改为
dataDir=/usr/local/zookeeper/dataDir
dataLogDir=/usr/local/zookeeper/dataLogDir

5、dataLogDir

日志目录,如果不配置会和dataDir公用

6、clientport

连接服务器的端口,默认2181

三、启动zookeeper
//启动
./zkServer.sh start
//重启,现关闭再开启
./zkServer.sh restart
//查看状态
./zkServer.sh status
3-1 zk数据模型介绍

1、树形结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ygF1mlkK-1575608668526)(en-resource://database/1749:1)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-djztQuLN-1575608668527)(en-resource://database/1751:1)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vc99c9ml-1575608668528)(en-resource://database/1753:1)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGV94rXQ-1575608668528)(en-resource://database/1755:1)]

3-2 zookeeper数据模型的基本操作
  1. 客户端连接
    ./zkCli.sh打开命令行后台
    连接到Connecting to localhost:2181
    Ctrl+C退出当前客户端
  2. 查看znode结构
  3. 关闭客户端连接
3-3 zookeeper的作用

1、高可用,当master挂了之后,后续的从节点就会替补上去,不让让系统崩掉,这也叫做首脑模式,保证集群的高可用,高可用的体现之一,局长死了,副局长立马顶上
2、统一配置文件管理,只需要部署一台服务器,则可以吧相同的配置文件同步更新到其他服务器,此操作在云计算中非常多(假设修改了redis统一配置)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZGMp7qyF-1575608668529)(en-resource://database/1757:1)]
3、发布与订阅,例如消息队列MQ,发布者将信息发布到节点,二订阅了节点的订阅者就会收到这个信息,相应的进行改变
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ic7PjXA0-1575608668530)(en-resource://database/1759:1)]
4、提供分布式锁,分布式环境中,不同进程的资源争抢,类似以多线程中的锁(为什么zookeeper能提供分布式锁呢,归因于zookeeper的结构,在zookeeper的结构中,增加节点是往后续的,即一个个增加在后面,类似于队列,所以第一个就是相当于master,这个唯一就是锁)
5、集群管理,集群保证数据的强一致性
比如客户端连接了主节点,并且增加数据Data-XYZ,那么由于集群的机制会进行同步,那么从节点酒也有了这个数据,客户端断开之后,连接其他节点也会读到相同的信息(类似于2统一文件-配置)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xgLMpyzY-1575608668530)(en-resource://database/1761:1)]

4-1 zookeeper的常用命令
  1. ./zkCli.sh 打开命令行后台
  2. ls和ls2
    ls查看目录 ls /zookeeper
    ls2是查看节点状态信息 ls2 /
    ls2相当于ls和stat
  3. stat 查看状态信息
  4. get 当前节点的数据取出来
    czxid 节点创建的id
    ctime 节点创建的时间
    mzxid 节点修改的id
    mtime 节点修改的时间
    pzxid 子节点的id
    cversion 子节点的版本
    dataVersion 数据的版本
    aclVersion 节点权限修改的版本
    ephemeralOwner 之后再说
    dataLength 数据长度
    numChildren 下面子节点的个数
4-2 session的基本原理
基本原理一
  1. 客户端与服务器之间的连接存在会话
  2. 每个会话都会可以设置一个超时时间
  3. 心跳结束,则Session过期
    因为每个心跳都会向服务器发送一个(ping包&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值