Zookeeper学习笔记

此文是在学习zookeeper期间的笔记,更多的是借鉴官方文档和网上的博客做出的总结。
这里写图片描述

1、ZooKeeper是什么?

直接参考:zookeeper简单介绍以及zookeeper是什么

官方的解释:zookeeper是一个用于分布式应用的分布式协调服务。源自Google的论文中提到的Chubby,但Chubby不开源,Yahoo就根据论文重写了一个分布式协调(一致性)服务,叫做zookeeper,完全开源,属于Hadoop的子项目。久经考验,是大多数分布式系统中为了实现一致性服务的首选。

2、Zookeeper能干什么?

参考:ZooKeeper典型应用场景一览

最初,zookeeper最终要的用于就是分布式中的高可用集群,leader选举。后来,逐渐增加了配置管理(例如kafka启动时读取zookeeper中的broker信息)、命名服务(例如Dubbo)以及leader选举(集群高可用)等。
这些功能,都依赖于zookeeper的结构和框架设计。

3、zookeeper设计目标及数据模型

参考:官方文档

设计目标:简单、有序、快速、集群。

简单:内存结构类似于文件系统的树形结构,但其节点可以包含子节点;数据在内存中维护;维护的数据仅仅包含状态信息,而不是数据本身,因此非常轻量级,一般小于1M。
有序:所有的请求事务都生成一个递增的ID。

关于集群(可复制的),即zookeeper本身也应该是由多个服务器组成zookeeper集群。对于client请求的读操作,会通过TCP与某个server建立连接,从server内存中获取相应的数据;server接收到写操作请求时,必须发送到leader,由leader完成写操作后,反馈给接受请求的server,再由server反馈给client。
这里写图片描述

数据模型:
这里写图片描述
分为节点和瞬时节点,统称为Znode。瞬时(临时)节点在client失去连接后,会自动删除其节点。

4、watch机制与ACL

参考:zookeeper解惑以及简单介绍

简单的说,watch机制是client可以在znode上设置watch,当znode结构发生变化时,会立刻触发watch,即通知client这一变化。其特点是一次性触发,之后需要再次注册才会触发。watch的类型根据方法不同又分为Data Watch和Children Watch。

一个ACL就是一个ID与permission的对儿,表示哪些个ID具有哪些个权限,可以进行什么样的操作。权限包括CREATE、READ、WRITE、DELETE、ADMIN。

5、Zookeeper安装配置以及维护

参考:安装配置以及FAQ

注意一点:zookeeper的参数dataLogDir最好单独设置,因为所有的log信息都会写到此目录,为了性能考虑,最好单独磁盘。
而且,日志最好不要在参数中设置,最好定期清理。参考:zookeeper日志清理

6、zookeeper client

参考:Zookeeper Client以及zkCli使用

7、zookeeper监控

参考:taokeeperzk-web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值