【大数据Zookeeper】之简介

一、概述


对于Zookeeper的一些理解:

  • Zookeeper是一个分布式的,为分布式框架提供服务的框架;
  • Zookeeper从设计模式的角度看,使用观察者模式,是一套实现了文件系统+通知机制的框架;服务提供者注册到Zookeeper中,以文件的形式存储,服务消费者订阅服务,当服务发生变更时,Zookeeper将消息及时通知给消费者。

二、特点


  1. Zookeeper拥有一个Leader,多个Fellower;
  2. 集群中只要有半数以上节点存活,Zookeeper就能正常工作,所以适合安装奇数台服务器;
  3. 全局数据一致:每台服务器都保存相同的数据,客户端连接哪个Server,都是一样的;
  4. 请求顺序执行:客户端的请求按顺序执行;
  5. 数据更新原子性:要么成功,要么失败;
  6. 实时性:客户端对于集群的更新,客户端能在极短时间内获取最新的数据;

三、数据结构


与Unix、Hadoop类似,在文件存储上,Zookeeper采用的是树形结构,树上的每一个节点用znode表示,大小只有1M,也就是说Zookeeper无法存储大文件,只适合存储一些小文件

四、应用场景


  • 统一命名服务
   /
     /service
        /www.baidu.com
          /192.168.0.1
          /192.168.0.1
          /192.168.0.1

Zookeeper存储的数据是树形结构,如上所示,我们会给关键服务起一个名称,比如www.baidu.com,然后在这个服务的节点下面, 我们可以继续挂载实际提供服务的IP地址。

这就是统一命名服务,通过名称实现抽象的服务和具体实现之间的解耦。

  • 统一配置管理

在Hadoop和Kafka等分布式框架环境下,不同节点间的配置文件是需要保持一致的,以往我们通过编写shell脚本的方式,修改一处配置后,统一分发给集群的其它节点。

现在,我们可以将配置文件交给zookeeper管理,当配置文件发生变更是,zookeeper将自动给client发送提醒消息。

  • 统一集群管理

分布式环境中,需要实时掌握某些节点运行的状态信息,我们可以将状态信息实时写入zookeeper的节点中,这样客户端就可以订阅这个状态信息,做到实时监控。

  • 服务器节点动态上下线

服务器节点动态上下线属于应用层面的,实现原理依然是zookeeper的订阅发现机制。

  • 软负载均衡

在上面的案例中,在www.baidu.com这个节点下,我们可能有很多服务IP,那我们不仅可以只记录服务IP,还可以将某些统计数据加入其中,比如当前的访问量,这样,我们就可以通过判断当前的访问量,实现软负载均衡。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值