zookeeper

zookeeper与keepalived的区别
zookeeper比keepalived更加复杂,可以将master的状态返回
keeplived只是简单主备切换

zookeeper本身也是分布式的
zookeeper半数以上机器存活就可正常运行
zk本质功能:1.管理用户提交的数据 (用节点存储(内存数据库))
2.为用户程序提供节点监听
基于java 需要jre环境

特性:
1.一个leader多个follower组成的集群
2.全局一致性
3.分布式读写,更新请求转发由leader实施
4.顺序一致性
5.数据更新原子性(要么都成功,要么都失败)
6.更新速度快

主要职责watch
1.配置维护
2.集群选主
3.动态上下感知
4.主从监听

Zookeeper不能作为存储的原因:存储数据量小
一般配置为奇数台,企业中至少5台,原因是zookeeper的半数选举机制,用偶数台效率不如奇数台

主备切换

子机2个 状态 分别为leader 和 follower
用户通过zk访问leader
如果active挂了,zk发生节点减少事件,通知给follower
follower收到消息后将自己变为leader

主节点选取

多个子机,所有follower监听leader,存在servers
一旦zk主节点leader挂了,扫描servers,哪个节点id最大,选为新的主节点

分布式锁

子机设为sequential znode
谁访问将写入zk的locks,由于是znode 加入lock是递增的,谁最小谁有访问权限,当访问结束后,将自己从locks删除
这样可以保证永远只有一个子机访问

zookeeper安装

1.解压
2.进入文件,cd conf 修改配置文件
tickTime 心跳包时间
initLimit 初始化时间最大间隔心跳数
syncLimit 发送请求最大间隔心跳数
dataDir 默认放再tmp中可能以后会被删除,所以修改地址
clientPort 客户端访问端口号
server.1=ip:2888:3888 2888,3888一个用来监听心跳,一个监听选主,可以配置多个,但最好奇数台
wq
3.scp -r zookeeper/ root@ip:$pwd 将文件拷到另一个ip主机,$pwd保存在相同路径下
4.找到之前设置dataDir的路径,echo server后的序号 > dataDir后设置的文件名
5.进入每个zk/bin下 ./zkserver.sh start
此处我们发现第二台机器被设置为leader,原因是:1第一个开启,还没有集群,第二台开启,zk选主,由于第二台的序号大,所以被选为主机,而之后的主机开启虽然比第二台大,但是已经选主,所以,其它机器来都是follower

zk的数据也是遵循选举的,每次我们获取的数据,都是zk半数以上机器选主的结果

shell启动zk

如果有很多机器。。去每个机器里启动明显不靠谱,so在每个机器之间配好免密登陆,写一个群起的脚本
vi zkstart.sh

#!/bin/bash
for host in ip1 ip2 ...
do
echo "$host is starting"
##因为zk是java程序,而当脚本直接启动时没有java环境所以添加source /etc/profile
ssh $host "source /etc/profile;/path/zk/bin/zkServer.sh start"
done

esc :wq!
chmod u+x zkstart.sh
./zkstart.sh 群起成功

paxos一致性算法

zk的半数选举的,保持数据一致性的核心算法

zk的节点znode

zk可以创建子目录,子目录下还可以存储子目录,但是节点只能存储很少的数据,所以只用来存储核心的关键数据,如机器状态。一个节点不能超过1M,最好几十K就ok

znode的类型

1.短暂 ephemeral 断开连接自动删除 常用
2.永久 断开连接不删除

znode目录节点类型

默认为persistent

  1. persistent
  2. persistent_sequential (持久序列,如f00000001)
  3. ephemeral
  4. ephemeral_sequential
znode顺序标识

节点设置顺序标识后,父节点会维护子节点单调递增创建
通过顺序标识,易得事件发生顺序

zk客户端使用

cd /zk/bin/ 进入bin
执行 ./zkcli.sh 连接本机zk
执行 ./zkcli.sh server ip 连接其它机器zk

常用命令
  1. ls /显示根目录
  2. create path "data" 创建节点 path为路径 data为值
  3. get path 查看节点
    包含 节点值
    czxid 创建事务id
    ctime 创建时间
    mzxid 修改事务id
    mtime 修改时间
    pzxid
    cversion 创建版本号 如果创建子节点 ++
    dataVsersion 数据版本 如果set修改节点数据++
    aclvsersion 权限版本
    ephemeralOwn 临时拥有
    dataLength 数据长度
    numChildren 子节点数
  4. set path "data" 修改节点值
  5. watch 监听
    原理:当客户端发送watch命令时,会将自己的ip和等待端口(socket)发送给zkServer
    zkServer收到信息后会在内部创建监听者信息,当监听信息发生改变后,zk给监听者发送信息
    监听只会触发一次,如果要重复监听,在触发监听回调时再次监听
    5.1 get path watch 监听节点数据是否发生变化
    5.2 ls path watch 监听目录下子节点是否发生变化
    5.3 stat path watch 监听节点的状态是否发生变化
注:一台机器的zk节点创建,修改,会同时同步到其它机器
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容