zookeeper入门介绍

分布式协调服务

维护:
 1、配置信息
 2、命名
 3、分布式同步
 4、组服务

大多分布式应用都需要处理以上的问题,不同的应用实现在或作或者存在缺陷,即便正确因为不用的实现导致管理的复杂性。

zookeeper-动物园管理员
1、提供以上通用的服务
2、接口简单易用,无需重新编写

概述
1、共享树状结构结构的命名树(类似文件系统结构)
2、zookeeper的数据保存在内存可以获得好吞吐低延迟的性能
3、高性能,高可用(无单点故障),严格顺序访问(复杂的同步原语在客户端实现)

冗余备份:

1、服务端将状态信息保存在内存并将事务日志和快照持久化。
2、客户端和服务端保持tcp连接,同过它进行发送请求、获取响应,获得观察事件(watch),发送心跳。如果断开连接,将连接到其他服务上上。
3、zookeeper读取速度很快,读的性能大于写入的性能,比率为10:1

数据模型和层级结构的命名空间
1、每一个zookeeper的命名空间由一个路径指定。

2、每个节点由数据和孩子节点关联。
3、znodes维持一个状态结构。
4、zookeeper支持对一个znode进行观察(watch),当znodes改变时候会触发watch,watch触发后
客户端会接受到一个事件,告诉说znode发生了变化。

保证:
   1、顺序一致性,客户端的更新请求会有序执行
   2、原子性,更新要么成功,要么失败
   3、单一系统镜像。
   4、可靠性、当发生更新操作时将马上持久化
   5、实时性

写入操作流程:
     
    客户端发送写入请求后,zookeeper的server端将写入请求转发给lead的server,更新自己内存数据库然后将更新数据广播给其他的
server,接受后的follower更新自己内存数据库。客户端发送读请求后,服务端直接将结果返回。所以读取要比写入高效。

zookeeper读-写吞吐量

参考:









猜你喜欢

转载自blog.csdn.net/changong28/article/details/41155557