zookeeper原理分析大纲

本文概述了ZooKeeper的设计目标与数据结构,详细介绍了Znode的不同类型、ACL权限管理、认证方式以及存储机制。此外,还探讨了ZooKeeper的运行模式,包括独立模式与集群模式,并对客户端交互进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、设计目标

  • 简单(API:create/delete/exists/get data/set data/get children/sync)
  • 可复制(内存)
  • 有序(tcp/zxid)
  • 快速(nio/读写分离)

二、数据结构
zookeeper数据结构

三、Znode

  • Persistent vs ephemeral
  • Sequence
  • Watcher
  • Stat

e)ACL
四、ACL Permissions

  • CREATE
  • READ
  • WRITE
  • DELETE
  • ADMIN
  • Builtin ACL Schemes

i.world has a single id, anyone, that represents anyone.
ii.auth doesn’t use any id, represents any authenticated user.
iii.digest uses a username:password string to generate MD5 hash which is then used as an ACL ID identity

五、认证auth

  • SASL(Kerberos)
  • IP
  • Digest
  • Other plugins

六、存储

  • DataTree
  • Snapshot
  • txnLog

七、运行模式

  • Standalone
  • Cluster

1.Standalone
2.Cluster
a)Quorum(participate/leader)/Observer/Readonly
b)Status
这里写图片描述
c)Leader选举

  • Major/Hierarchical
  • Voting(两两互联,各自统计)

d)Leader确认

  • newEpoch/EpochAck
  • Sync:DIFF/TRUNC/SNAP
  • NEWLEADER/ACK/UPTODATE

e)Leader工作

  • PROPOSAL/COMMIT/INFORM
  • ACK/PING/REVALIDATE/REQUEST

八、Client
a)命令行
这里写图片描述

b)zkClient

  • 定义了各种listener接口
  • serialize接口
  • 提供了一些工具及接口

c)Curator

  • 动态加载可使用zookeeper服务器
  • 超时及重试机制
  • Builder封装
  • Namespace
  • Compress
  • background operation
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值