Zookeeper学习之路

下文主要讲解Zookeeper的原理,主要包含:

(1)Zookeeper的选举机制;

(2)Zookeeper的监听原理;

(3)Zookeeper的部署方式,集群的角色,集群最少的机器数目;

(4)Zookeeper的常用命令;

一、概述

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

2、Zookeeper是文件系统(储存和管理大家都关心的数据和文件)和通知机制(Zookeeper中储存了一些服务器的相关信息,当某一台服务器宕机了之后,Zookeeper会通知相关的客户端)的集合

zookeeper metaq架构 zookeeper原理详解_配置文件

二、Zookerper架构图

zookeeper metaq架构 zookeeper原理详解_服务器_02


注:

(4)是指不同客户端对同一服务器进行请求,服务器会按照请求顺序执行;

(6)拥有实时性的原因是储存的东西都太小了(一般储存的是服务器的配置文件);三、数据结构

zookeeper metaq架构 zookeeper原理详解_配置文件_03


四、应用场景

zookeeper metaq架构 zookeeper原理详解_配置文件_04


1、举例:ip不容易记住,但是域名可以;

2、要求集群中所有配置文件信息是同步的,举例:kafka消息队列;

3、将配置信息写入Zookeeper中的一个Znode中;

4、接受客户端的管理,实时监控服务器上下线的变化;

5、记录每台服务器的访问数,让访问最少的服务器去处理新的客户端请求;

五、Zookeeper的安装以及配置

后续补充

六、Zookerper的内部原理

(1)半数机制:集群中半数的机器存活,集群可用,所以Zookeeper适合奇数台服务器;

(2)由自己的投票机制来选举出谁是leader,其余的当为flower;

七、节点类型

1、持久

客户端与服务端断开连接后,创建的节点不删除;

(1)持久化目录节点

客户端与Zookeeper断开连接后,该节点依然存在;

(2)持久化顺序编号目录节点

客户端与Zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号;

2、短暂

客户端和服务器断开连接后,创建的节点自己删除;

八、Shell命令操作

创建每个节点并且储存信息,在节点中才能得到信息;

九、Stat结构体

仅仅了解,开发中基本不用

zookeeper metaq架构 zookeeper原理详解_服务器_05

十、监听器的原理

zookeeper metaq架构 zookeeper原理详解_客户端_06


注:分为两个线程,一个负责监听,一个负责网络连接十一、写数据的流程

zookeeper metaq架构 zookeeper原理详解_zookeeper metaq架构_07


注:当leader收到大多数写入成功之后,会返回写入成功给接到客户端信息的seveer1,由server1返回信息给client;

如果看完对自己有所帮助,请点赞支持,谢谢;