ZK学习笔记

一. ZK的部分特点

  1. 一个leader,多个follower模式
  2. 集群中只要有半数存活,即可以正常工作;
  3. 部署奇数服务器原则;生产集群安装多少ZK合适:
  • 10台:3
  • 20台:5
  • 100台:11
  • 200台: 11
  1. 全局数据一致性,以及更新原子性,一次数据更新要不全成功,要不失败;
  2. ZK数据结构,树状,类似于linux文件结构;每个ZNODE可以存储1MB数据;
  3. 统一命名服务,统一配置管理,统一集群管理,服务器节点动态上下线(注册中心),软负载均衡;

二. 配置参数解读(zoo.cfg)

  1. dataDir:数据存放路径,核心参数,调整;
  2. tickTime;默认2000,心跳时间;
  3. initLimit;默认10,即初始化集群时,超时时间未10个2000ms;
  4. syncLimit;默认5,LF运行期间节点请求超时时间;
  5. clientPort;默认2181,供客户端连接端口号
  6. 在dataDir目录下创建myid文件,文件内容为数字,标识集群节点号。
  7. 添加配置:server.A=B:C:D
    示例:server.2=192.168.1.1:2888:3888
  • A是个myid中的数字
  • B是每个服务器的IP地址;
  • C是L和F交换信息的端口;
  • D是选举端口

三. ZK选举机制

  1. 第一次选举
  • 投票过半数时,服务器id大的胜出,按照奇数安装,一般就是中间那台机器为leader;
  1. 第二次启动选举
  • EPOCH大值胜出;
  • EPOCH相同时,事务ID大的胜出;
  • 事务ID也相同时,服务器ID大的胜出。

四. ZK节点信息

  1. 节点类型:持久、短暂、有序号、无序号
  2. 启动客户端连接某个server:zkCli.sh -server 192.168.1.1:2181
  3. 常用命令
  • help
  • ls/ls -s
  • get/get -s获取详细/get -w监听
  • create永久节点/create -s 有序号节点/create -e 临时节点
  • detete/deteleall 删除节点
  • stat 查看状态
  • set 设置值

五. 常见应用与实现

  1. 服务器动态上下线:注册中心
  2. zk分布式锁
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 近来学习zookeeper,在B站看到个不错的学习视频。抄袭下笔记,视频链接在下面【2021最新首发】这可能是B站...
    super_pcm阅读 3,496评论 0 1
  • Zookeeper是一个开源的,为分布式应用提供协调服务的 Apache 项目。从设计模式的角度来理解:Zooke...
    dev_winner阅读 2,880评论 0 1
  • 什么是zookeeper 简介:Apache Zookeeper是一种用于分布式应用程序的高性能协调服务,提供一种...
    在知识的海洋里遨游阅读 3,130评论 0 0
  • 一、Zookeeper简介 1.什么是Zookeeper Apache Zookeeper是一个开源的分布式服务框...
    青年心路阅读 4,386评论 0 1
  • kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。...
    dev_winner阅读 3,520评论 0 2