Open Source, Open Future!
  menu
107 文章
ღゝ◡╹)ノ❤️

Zookeeper笔记

介绍

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

工作机制

clipboard.png

特点

clipboard.png

数据结构

image.png

应用场景

  • 统一命名服务
  • 统一管理配置
  • 统一集群配置
  • 服务器节点动态上下线
  • 软负载均衡

选举机制

  1. 半数机制:集群中半数以上机器存活,集群可用。所以zookeeper适合安装奇数台服务器。
  2. zookeeper虽然在配置文件中并没有指定Master和Slave,但是,Zookeeper工作时,是有一个节点为Leader,其他为Follower,Leader是通过内部选举机制临时产生的。

监听器原理

image.png

写数据流程

image.png

zoo.cfg配置文件

参数含义
tickTimezk使用的基本时间(ms),每隔tickTime时间心跳一次
initLimit初始通信时限(集群中F与L之间初始连接时最多能容忍的心跳数,超出则连接失败)
syncLimit同步通信时限(集群中F与L之间的响应最多能容忍的心跳数,超出则认定F故障,将F剔除)
dataDir保存zk数据的目录
clientPortzk会在这个端口监听客户端的请求
service.A =B: C:D在集群模式下会用到这个配置。A:服务器编号(myid中的值)。B:服务器地址。C:F与L的通信端口(默认2888)。D:选举端口(默认3888)

备注:L(leader服务器)、F(follower服务器)