Zookeeper面试知识
1、Zookeeper简介
Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理、命名、分布式同步、集群管理、数据库切换等服务。它不适合用来存储大量信息,可以用来存储一些配置、发布与订阅等少量信息。Hadoop、Storm、消息中间件、RPC服务框架、分布式数据库同步系统,这些都是Zookeeper的应用场景。Zookeeper集群中节点个数一般为奇数个(>=3),若集群中Master挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务。
2、Zookeeper搭建(理解)
1、上传安装包到master并解压 tar -xvf zookeeper-3.4.6.tar.gz 2、配置环境变量 vim /etc/profile export ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.6 export PATH=$PATH:$ZOOKEEPER_HOME/bin source /etc/profile 3、修改配置文件 cd conf cp zoo_sample.cfg zoo.cfg 修改 dataDir=/usr/local/soft/zookeeper-3.4.6/data 增加 server.0=master:2888:3888 server.1=node1:2888:3888 server.2=node2:2888:3888 4、同步到其它节点 scp -r zookeeper-3.4.6 node1:`pwd` scp -r zookeeper-3.4.6 node2:`pwd` 配置node1和node2的环境变量 scp /etc/profile node1:/etc/ scp /etc/profile node2:/etc/ 在所有节点执行 source /etc/profile 4、创建/usr/local/soft/zookeeper-3.4.6/data目录,所有节点都要创建 mkdir /usr/local/soft/zookeeper-3.4.6/data 在data目录下创建myid文件 vim myid master,node1,node2分别加上0,1,2 5、启动zk, zkServer.sh start 三台都需要执行 zkServer.sh status 查看状态 当有一个leader的时候启动成功 连接zk zkCli.sh zk 是一个目录结构 ,每个节点可以存数据,同时可以有子节点 zk shell 创建目录 create /test test create /test/a 1 获取数据 get /test ls /test delete 只能删除没有子节点的节点 rmr /test 删除节点 重置zk 1、杀掉所有zk进程 kiil -9 pid 2、删除data目录下的version文件, 所有节点都要删除 rm -rf /usr/local/soft/zookeeper-3.4.6/data/version-2 2、启动zk zkServer.sh start
3、选举机制
半数机制:2n+1,安装奇数台
10台服务器:3台
20台服务器:5台
100台服务器:11台
台数多,好处:提高可靠性;坏处:影响通信延时
4、常用命令
ls、get、create
5、讲一讲什么是CAP法则?Zookeeper符合了这个法则的哪两个?(扩展)
CAP法则:强一致性、高可用性、分区容错性;
Zookeeper符合强一致性、高可用性!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署