1、概述
个人理解:
Zookeeper是一个分布式集群,它的作用是接受其他组件到Zookeeper集群里面存储数据,以及接受其他组件到Zookeeper集群订阅消息。当存储的数据发生变化时, Zookeeper就会通知订阅的组件,告诉它所关心的数据已经发生了变化,订阅的组件就可以做出相应的响应。
本质就是多个微服务组件之间,将共同关注的内容都存放在Zookeeper中,并根据状态实时去更新Zookeeper中的数据。一旦数据有更新,Zookeeper就通知所有其他的组件。
如果没有Zookeeper,多个微服务组件之间的消息同步就会变得异常繁琐。
2、特点
一个Zookeeper集群由多个(奇数个)节点组成,每个节点都叫作一个Server。这些Server里面,有一个主节点,叫作Leader,其它的为非主节点,叫作Follower。
与Zookeeper交互的其它分布式组件叫作Client。
3、数据结构
4、应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡,分布式锁等。这些应用场景实现原理都是通过将数据统一存放在Zookeeper中,然后多个微服务组件来进行读取。
4.1、统一命名服务
个人理解:存放的就是key-value。key为hostname,value为IP时,就类似于DNS的作用。