1、zookeeper主要干那些事情:
参考:
(1)配置管理(用的很多):将项目的配置信息放在zookeeper进行管理
(2)名字服务(和配置管理差不多)
(3)
分布式锁
zookeeper是一种分布式的协调服务,可以用来协调
多个分布式进程之间的活动(注意是协调进程)
项目中就有用到分布式锁,有一个JobLockAnnotation的注解的锁,只有拿到这个锁才能运行
分布式协调技术的核心就是来实现这个分
布式锁
分布式协调服务:
在进程内有各种各样的协调机制(一般我们称之为同步机制),但是这些协调都是在进程内进行协调。在进程内进行协调我们可以使用语言,平台,操作系统等为我们提供的机制。那么如果我们在一个分布式环境中呢?也就是我们的程序运行在不同的机器上,这些机器可能位于同一个机架,同一个机房又或不同的数据中心。在这样的环境中,我们要实现协调该怎么办?那么这就是分布式协调服务要干的事情。
(4)集群管理(和分布式锁一个机制,对多个服务进行管理)
如有多个节点,有节点进进出出,这些需要感知并合理的分配服务,以及获取哪个节点提供服务等,这些都可以有zookeeper进行管理。
2、zookeeper结构
zookeeper主要由三部分组成:
数据结构(即和文件系统的结构类似)Znode,zookeeper需要维护这个数据结构;
操作原语:这里主要体现在对节点的操作上。如:当某一节点写操作时,只有写完了之后才能被其他资源享用;
watch触发器
(类似于监控):每个节点对应一个watch,当节点信息发生改变是,会触发watch,将改变的信息传送给客户端。