Zookeeper是分布式服务架构,是apache hadoop的一个子项目,主要是用来解决分布式应用中遇到的一下数据管理问题,如 集群管理,统一命名服务,分布式配置管理,分布式消息队列,分布式锁,分布式通知协调等
Zookeeper 没有具体的功能,他在大数据中的作用是协调大数据框架的,提供的是协调服务
Zookeeper的工作机制:
Zookeeper从设计角度来看,是一个基于观察者模式设计的分布式服务器管理框架,他负责存储和管理数据,然后接受观察者的注册,一旦这些数据状态发生改变,zookeeper就将负责通知已经在zookeeper上注册的那些观察者,做出相应的反应。
总而言之,zookeeper只需要做两件事。
第一件事:存数据
第二件事: 通知
理解: 就是在学生和讲师之间需要班主任沟通,约好的课程,但是因为讲师有事来不了,这时候需要班主任进行协调,并告知同学们,班主任的作用就是zookeeper的作用,
在实际中的应用:
Server1 server2 server3
Client1 client2 client3
三台server,是一个集群, 没有zookeeper的时候,三个client会直接连接三个server,中间没有任何东西,就是直连,但是当serverA 挂了之后,client1是不知道的,client1还是会连接serverA,但是serverA根本不会理client1,
如果我们加上zookeeper集群之后,结构如下:
Server1 server2 server3
| 1、(服务端在启动时去注册信息,将自己的信息保存到zookeeper里边)
zookeeper集群(类似于中间件)
| 2、(client从zookeeper获取当前在线服务器列表,并注册监听)
Client1 client2 client3
我们上边说了,zookeeper干两件事,一件事是存数据,一件事是通知,三台server,会把自己提供的服务和端口的信息,保存到zookeeper里边 ,
Client就是从zookeeper里边读取数据,看哪台能够正常连接
**
1、服务端在启动时去注册信息,将自己的信息保存到zookeeper里边
2、client从zookeeper获取当前在线服务器列表,并注册监听
3、server2挂了,
4、zookeeper会主动通知在在zk上注册的主机,就是三台client,告诉他们server2 已经挂了,这就是zk完成的第二件事
5、zk进行通知了之后,三个client,会再次向zookeeper进行注册监听,这是zookeeper提供服务的一个过程
**
Zookeeper=文件系统+通知机制 zookeeper就是通过这两个来实现协调的功能,(文件系统就是存储数据的)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。