Zookeeper学习之路
下文主要讲解Zookeeper的原理,主要包含:
(1)Zookeeper的选举机制;
(2)Zookeeper的监听原理;
(3)Zookeeper的部署方式,集群的角色,集群最少的机器数目;
(4)Zookeeper的常用命令;
一、概述
1、Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目
2、Zookeeper是文件系统(储存和管理大家都关心的数据和文件)和通知机制(Zookeeper中储存了一些服务器的相关信息,当某一台服务器宕机了之后,Zookeeper会通知相关的客户端)的集合
二、Zookerper架构图
注:
(4)是指不同客户端对同一服务器进行请求,服务器会按照请求顺序执行;
(6)拥有实时性的原因是储存的东西都太小了(一般储存的是服务器的配置文件);
三、数据结构
四、应用场景
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结构体
仅仅了解,开发中基本不用
十、监听器的原理
注:分为两个线程,一个负责监听,一个负责网络连接
十一、写数据的流程
注:当leader收到大多数写入成功之后,会返回写入成功给接到客户端信息的seveer1,由server1返回信息给client;
如果看完对自己有所帮助,请点赞支持,谢谢;