Zookeeper的数据结构的基本介绍

zk参考,最前的zk概念讲解
ZooKeeper会维护一个具有层次关系的数据结构,非常类似于一个标准的文件系统,如下图所示:
Zookeeper的数据结构的基本介绍_第1张图片
每个子目录项如NameService都被称作znode,这个znode是被它所在的路径唯一标识,如Server1这个znode的标识为/NameService/Server1
需要注意的是znode的最多存储1m的数据

Zookeeper功能

ZooKeeper 底层其实只提供了两个功能:①管理(存储、读取)用户程序提交的数据;②为用户程序提交数据节点监听服务(Watcher特性,有zk通知感兴趣的客户端)。

Session 指的是 ZooKeeper 服务器与客户端会话。在 ZooKeeper 中,一个客户端连接是指客户端和服务器之间的一个 TCP 长连接。客户端启动的时候,首先会与服务器建立一个 TCP 连接,从第一次连接建立开始,客户端会话的生命周期也开始了。通过这个连接,客户端能够通过心跳检测与服务器保持有效的会话,也能够向Zookeeper服务器发送请求并接受响应,同时还能够通过该连接接收来自服务器的Watch事件通知。 Session的sessionTimeout值用来设置一个客户端会话的超时时间。当由于服务器压力太大、网络故障或是客户端主动断开连接等各种原因导致客户端连接断开时,只要在sessionTimeout规定的时间内能够重新连接上集群中任意一台服务器,那么之前创建的会话仍然有效。
在为客户端创建会话之前,服务端首先会为每个客户端都分配一个sessionID。由于 sessionID 是 Zookeeper 会话的一个重要标识,许多与会话相关的运行机制都是基于这个 sessionID 的,因此,无论是哪台服务器为客户端分配的 sessionID,都务必保证全局唯一。

dubbo在zk中的数据结构

dubbo的服务注册在zk也是一个ZNode,不过dubbo所展示节点名是dubbo信息,节点值默认就是dubbo服务注册的ip
Zookeeper的数据结构的基本介绍_第2张图片
美化后是这个样子,通过这里可以看到dubbo在zk中的信息是以键值对的形式存在的:
Zookeeper的数据结构的基本介绍_第3张图片

你可能感兴趣的:(技术分享,分布式微服务,zookeeper,分布式)