万字长文带你入门Zookeeper(二)

151 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第41天,点击查看活动详情

之前在其他平台发表过的文章,今天分享在掘金,跟大家一起学习~

Zookeeper的数据结构

Zookeeper 提供的名称空间非常类似于标准文件系统,key-value 的形式存储。名称 key 由斜线 / 分割的一系列路径元素,Zookeeper 名称空间中的每个节点都是由一个路径标识。其与Linux文件系统类似,整体上可以看作一棵树,每个节点称为一个ZNode,每个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。

在这里插入图片描述

Zookeeper应用场景

1、统一命名服务 在分布式环境下,经常需要对应用/服务统一命名,便于识别

2、统一配置管理 (1)分布式环境下,配置文件同步非常常见:

  • 一般要求一个集群中,所有节点的配置信息是一致的
  • 对配置文件修改后,希望可以快速同步到各个节点上

(2)配置管理可以交给Zookeeper实现

  • 可以将配置信息写入到Zookeeper的一个ZNode
  • 各个客户端服务器监听这个ZNode
  • 一旦Znode中的数据被修改,Zookeeper将通知各个客户端服务器

3、统一集群管理 (1)分布式环境下,实时掌握每个节点的状态是有必要的

  • 可以根据节点实时状态做出一些调整

(2)Zookeeper可以实现实时监控节点状态变化

  • 可以将节点信息写入到Zookeeper上的一个ZNode
  • 监听这个ZNode可以获取它的实时状态变化

4、服务器动态上下线 客户端能实时洞察到服务上下线的情况

5、软负载均衡 在Zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求