Zookeeper:基本概念和设计目的

时间:2024-03-26 14:24:04

1.声明

当前内容主要用于本人学习和复习,当前内容主要为的zookeeper的基本概念和设计目的

当前内容来源于:Zookeeper官方文档

2.Zookeeper的基本概念

1.Zookeeper是什么?
一个分布式服务协调的分布式应用;主要是做服务协调,zookeeper是一个分布式的应用,类似springcloud中eruek,说白了就是一个服务注册中心,对外面提供服务更新和发布

2.zookeeper能干什么?

用于实现同步,配置维护以及组和命名的更高级的服务;就是利用zookeeper实现数据一致性,数据配置的公共维护

3.zookeeper的数据模型?

按照Linux文件系统的目录树结构样式设计的(又回到了Linux文件系统)

4.zookeeper运行方式?

以java方式运行同时和c绑定;这就是为什么使用zookeeper需要java环境才能运行的(需要配置java环境)

5.zookeeper设计的动机?

主要用于减轻分布式应用从头开始实施服务协调的责任;由于分布式服务中彼此都不知道彼此的位置,并不知道彼此的端口,所以就有了eruek和zookeeper,主要就是用来暴露服务的

3.设计目的

1.zookeeper的协调方式?

主要在分布式进程中通过共享的分层名称空间相互协调,即类似Linux的文件系统方式进行协调

2.分层名称空间的数据结构

名称空间由znodes组成,znode类似文件和目录;就是znode可以是其他znode的容器,也可以只是一个文件

3.zookeeper集群

就是指一组zookeeper分布在各个主机上,他们的数据彼此复制,。组成zookeeper的服务彼此了解。他们维护内存中的状态图像(读取就是它),以及持久存储事务日志和快照,只要多数服务可用,那么集群可用

Zookeeper:基本概念和设计目的

4.客户端连接到zookeeper

客户端主要通过一个TCP连接,通过这个TCP发送请求给Zookeeper server,主要通过获取响应、监视时间、发送心跳(感觉就像一个监视器,不停的问你挂了没?不停的问来判断当前的服务是否可用)

5.zookeeper 是排序的

就是每次更新的时候都会使用数字标记这个更新,后续可以使用事务方式进行同步数据的操作

6.zookeeper很快

主要是应该当前的zookeeper读取的时候是内存中的映像,而不是从磁盘中读取,所以这么快,所以它的读取速度快

4.总结

1.通过读取官方文档发现,zookeeper可以作为分布式服务注册中心,分布式中的集群是复制方式

2.分布式的集群中各个节点都是维护内存的数据蓝图,以及部分事务日志和快照,并且使用内存方式,所以速度快

3.客户端连接到zookeeper服务的时候,采用的tcp协议,并且持续发送心跳和获取响应来判断服务器是否可用

以上纯属个人见解,如有问题请联本人!