Zookeeper-概述、安装及原理

1、Zookeeper 概述

1.1、概述

Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。

1.2、特点

1)Zookeeper:一个领导者(leader),多个跟随者(follower)组成的集群。

2)Leader 负责进行投票的发起和决议,更新系统状态。

3)Follower 用于接收客户请求并向客户端返回结果,在选举 Leader 过程中参与投票。

4)集群中只要有半数以上节点存活,Zookeeper 集群就能正常服务。

5)全局数据一致:每个 server 保存一份相同的数据副本,client 无论连接到哪个 server,数 据都是一致的。

6)更新请求顺序进行,来自同一个 client 的更新请求按其发送顺序依次执行。

7)数据更新原子性,一次数据更新要么成功,要么失败。

8)实时性,在一定时间范围内,client 能读到最新数据。

1.3、数据结构

ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个 节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,每个 ZNode 都可以通过 其路径唯一标识。

1.4、应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下 线、软负载均衡等。

1.4.1、统一命名服务

1.4.2、统一配置管理

1.4.3、统一集群管理

1.4.4、服务器节点动态上下线

1.4.5、软负载均衡

1.5、下载地址

1)官网首页:https://zookeeper.apache.org/

2)下载截图:

2、Zookeeper 安装

zookeeper安装方式有三种:单机模式、伪集群模式、集群模式。

2.1、本地模式安装部署

1)安装前准备:

(1)安装 jdk

(2)通过 SecureCRT 工具拷贝 zookeeper 到 linux 系统下

(3)修改 tar 包权限

chmod u+x zookeeper-3.4.10.tar.gz

(4)解压到指定目录

tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/

2)配置修改:

将/opt/module/zookeeper-3.4.10/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg;

3)操作 zookeeper:

(1)启动 zookeeper

(2)查看进程是否启动

(3)查看状态

(4)启动客户端

(5)退出客户端

(6)停止 zookeeper

2.2、配置参数解读

解读zoo.cfg文件中参数含义

1)tickTime=2000:通信心跳数,Zookeeper服务器心跳时间,单位毫秒

Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔, 也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。

它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)

2)initLimit=10:Leader和Follower初始通信时限

集群中的follower跟随者服务器与leader领导者服务器之间初始连接时能容忍的最多心 跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。

投票选举新leader的初始化时间

Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的 起始状态。

Leader允许Follower在initLimit时间内完成这个工作。

3)syncLimit=5:Leader 和 Follower 同步通信时限

集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime, Leader认为Follwer死掉,从服务器列表中删除Follwer。

在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机 制,来检测机器的存活状态。

如果L发出心跳包在syncLimit之后,还没有从F那收到响应,那么就认为这个F已经不在线了。

4)dataDir:数据文件目录+数据持久化路径

保存内存数据库快照信息的位置,如果没有其他说明,更新的事务日志也保存到数据 库。

5)clientPort=2181:客户端连接端口

监听客户端连接的端口

3、Zookeeper 内部原理

3.1、选举机制

1)半数机制(Paxos 协议):集群中半数以上机器存活,集群可用。所以 zookeeper 适合装在奇数台机器上。

2)Zookeeper 虽然在配置文件中并没有指定 master 和 slave。但是,zookeeper 工作时, 是有一个节点为 leader,其他则为 follower,Leader 是通过内部的选举机制临时产生的。

3.2、监听器原理

3.3、写数据流程

猜你喜欢

转载自blog.csdn.net/liberty12345678/article/details/85101875
今日推荐