3.5.6版本
16.1 谈谈你对Zookeeper的理解
难度:★★★
重点:★★★
白话解析
又是对什么什么的理解,老规矩:1、背景;2、概念;3、核心功能。
1、背景:随着架构演进,在分布式集群系统中,配置文件等如果依然放在本地的话会完犊子的,为啥呢?
一旦改变某个配置参数,运维人员得将无数台服务器重启,然后更改,工作量太大了,这个时候解决方案就是用一个上帝视角的玩意儿来帮忙存这些公共的配置,不同服务器节点的系统要用配置就来上帝视角这里拿就完事了,如果要改,也只需要改上帝这里的配置就好了,你看,这么一操作,工作量挠一下就下去了。因为这些问题,诞生了如Zookeeper之类的服务协调组件。
2、概念:Zookeeper就是一个第三方的存储软件,它是一个独立的项目,相当于一个上帝视角,站在上帝的角度为我们的业务系统提供数据存储(比如注册中心和配置中心的功能),以及动态监听的功能(当zk上的数据发生变化,它会通过watch机制告诉我们的业务系统)。
3、它作为一个上帝,要提供哪些核心功能:
-
首先它要存储数据,所以它必须提供一个数据结构去存储。
-
数据存储上来之后,当数据发生变化,我得告知业务系统。怎么告知,什么时候告知,告知哪些业务系统都得考虑,这里怎么告知肯定是通过网络通信协议去做的,什么时候告知是通过watcher机制去观察的,告知谁是在我们zk上