1 zookeeper简介

夙愿已清 提交于 2020-09-30 10:33:49

zookeeper

① zookeeper概述

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

工作机制:

 

② zookeeper的特点

 

③ zookeeper的结构

 

④ 应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

具体的参考文档说明。

 

⑤ 如何使用Zookeeper实现分布式应用配置中心?

使用Zookeeper实现分布式应用配置中心

所谓的配置中心,顾名思义就是发布者将数据发布到 ZooKeeper 的一个或一系列节点上,供订阅者进行数据订阅,进而达到动态获取数据的目的,实现配置信息的集中式管理和数据的动态更新。

发布/订阅系统一般有两种设计模式,分别是推(Push)模式和拉(Pull)模式。

推模式:服务端主动将数据更新发送给所有订阅的客户端。

拉模式:客户端通过采用定时轮询拉取。

 

 

ZooKeeper采用的是推拉相结合的方式:客户端向服务端注册自己需要关注的节点,一旦该节点的数据发生变更,那么服务端就会向相应的客户端发送Watcher事件通知,客户端接收到这个消息通知之后,需要主动到服务端获取最新的数据。 如果将配置信息存放到ZK上进行集中管理,那么通常情况下,应用在启动的时候会主动到ZK服务器上进行一次配置信息的获取,同时,在指定上注册一个Watcher监听,这样一来,但凡配置信息发生变更,服务器都会实时通知所有订阅的客户端,从而达到实时获取最新配置信息的目的。

在我们平常的应用系统开发中,经常会碰到这样的需求:系统中需要使用一些通用的配置信息,例如机器列表信息、运行时的开关配置、数据库的配置信息等。这些全局配置信息通常具备以下特性:

  • 数据量通常比较小
  • 数据内容在运行时会发生变化
  • 集群中各机器共享、配置一致

对于这类配置信息,一般的做法通常可以选择将其存储到本地配置文件或是内存变量中。无论采取哪种配置都可以实现相应的操作。但是一旦遇到集群规模比较大的情况的话,两种方式就不再可取。而我们还需要能够快速的做到全部配置信息的变更,同时希望变更成本足够小,因此我们需要一种更为分布式的解决方案。

参考链接: https://cloud.tencent.com/developer/news/365803

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!