Zookeeper基本概念

1、Zookeeper是什么?

      Zookeeper是雅虎公司基于Google chubby(解决分布式事务问题)而创建的一个开源的分布式协调服务。

      为解决分布式系统中协作多个任务的难题,zookeeper应运而生(协作任务是指一个包含多个进程的任务),简化了构件分布式系统的难度。Zookeeper之前是其他系统采用分         布式锁管理器或分布式数据库来实现协作,实际上zookeeper从中吸取了很多概念。zookeeper更注重于任务协作,并不提供任何锁的接口或通用数据存储接口。同时,                   zookeeper并没有为开发人员增加任何同步的原语,使用起来非常的灵活。
 

      开发分布式应用时,其复杂性会立刻凸显出来,zookeeper并不能为我们解决分布式开发中所有的问题,而是为开发者提供了一种优雅的框架来处理这些问题,并且在分布式计        算领域进行了大量的工作。

 

2、Zookeeper能做什么?

      数据的发布和订阅(配置中心:disconf)、负载均衡(dubbo利用了zookeeper机制实现负载均衡)、命名服务、master选举(kafka、hadoop、hbase)、

      分布式队列,分布式锁

 

3、Zookeeper的特性

      1)顺序一致性    

从同一个客户端发起的事务请求,最终会严格按照顺序被应用到zookeeper中

      2)原子性            

所有的事务请求的结果在整个集群中的所有机器上是状态(应用情况和数据情况)是一致的,也就是说,要么在整个集群上的所有机器的都应用了同一3事务要不都不应用

      3)可靠性            

一旦服务器成功应用了某一事物的数据,并且对客户端进行响应,那么这个数据在整个集群中的一定是同步的并且保留

      4)实事性            

一旦事务被成功应用,客户端就能够立即从服务器端读取到事务变更后的最新数据状态(Zookeeper仅仅能保证接近实时,会有一定延迟)

 

4、Zookeeper集群的中的角色:leader、follower、observer

      1、master

      2、follower :当leader挂掉之后,会进行投票选举

      3、observer: observer是一种特殊的Zookeeper节点,在投票选举中不参加投票。可用于解决zookeeper的扩展性,如果大量的客户端对集群进行访问时,需要增加集群机器的数量,从而横向提高性能时,导致zookeeper写性能的下降(需要原子的同步到更多的节点),并且数据变更需要半数以上的服务器投票通过,造成大量的网络消耗

      1)、此时observer是不参加投票的,只接受投票结果以提高性能

      2)、不是重要的集群服务器角色

      两种配置方式:1、在zoo.cfg中添加      peerType=observer

                               2、server.1=zk_node1:2881:3881:observer

 

 

 

 

你可能感兴趣的:(Zookeeper)