zookeeper到底是干什么的?

我也是初学zk,整理下资料,希望能对你有帮助!

提起zk我们总会想到,zk可以被用作注册中心、构建zk集群时候节点最好为奇数……

可见我们对zk理解仅仅停在表面。那么zk到底是什么呢 ?

一、什么是zk?

了解zk之前我们首先要知道zk由来,zk能帮助我们做些什么事情?

1.1zk由来

举个例子,小王想找A团队安排点任务,所以小王找了A团队的leader小李,因为小李可以管理团队的成员,知道团队内的大大小小事情。小李协调安排了合适的人帮小王解决了需求。

那么小李,实际上承担了团队里面的协调作用,同样来说分布式系统也相当于一个团队,也需要这么一个协调者。如果小李不存在会出什么问题呢 ?

假设一个团队有三个员工:s1、s2、s3 (一个集群下三个服务)

这时候小王提出了几个问题:

1.s1员工换了一个工位(ip),防止其他员工找不到自己,怎么同步给其他员工呢?(每个服务都有一个配置文件,配置文件中信息动态变更,如何保证各节点数据一致性?)

2.来了一个新任务怎么分配给某个员工做?(保证一个任务只在一个service执行) 

3.员工s1辞职了,怎么通知其他员工,并把工作交接给别的员工?(某个service挂掉如何通知给其他service并接替它的任务?)

4.三个员工做任务时候都涉及到了一个公共文件,怎么保证这几个员工有序看这个文件并且保证这个文件在看的时候没有被另一个人修改?(保证节点当问共享资源的互斥性和安全性,类似多线程访问同一资源)

这时候就体现了小李承担着分布式协调的工作,我们都知道CAP理论,在选小李这样人才时候不由得思考到底是把CP还是AP放到第一位,选择CP我们就可以在同一时间同步员工信息相同,但是需要容忍一定的同步时间;AP就是需要容忍数据不一致问题,但是确保了员工们都正常给我们做任务。

其中zookeeper就是运用cp理论的分布式协调系统佼佼者。

如果把每个节点比喻成各种小动物,那zookeeper就是动物园管理员,这也是zookeeper名字由来

1.2简介

zk设计目标就是作为一个集群提供数据一致的协调服务,在整个及群众负责各个节点数据复制和同步。

zk是一个分布式协调服务,目的解决分布式一致性问题 。底层基于类似于文件系统的目录节点树的方式进行数据存储,同时维护和监控存储数据的状态变化,通过监控这些数据状态变化,从而达到基于数据的集群管理。

让我们看下官网的介绍 

1.3应用场景

  1. 数据发布/订阅
  2. 负载均衡
  3. 命名服务
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值