zookeeper介绍及设计目标

简介

zookeeper是一个开放源代码的分布式协调服务。目标是将复杂的分布式一致性服务封装起来,并提供简单易用的接口。

zookeeper 是什么?

是一个分布式数据一致性的解决方案,分布式应用可以基于它实现发布订阅、负载均衡、命名服务、协调通知、集群管理、master选举、分布式锁和分布式队列的特性。

保证了什么样的一致性?

顺序一致性
原子性
单一视图(每个节点的数据都是相同的)
可靠性
实时性(有限的时间内的最终一致性)

设计目标

高性能 - 解决高吞吐量问题
高可用 - 解决单点问题
严格顺序访问能力 - 实现复杂的同步原语

四个设计目标:

  • 简单的数据模型(高性能)
    提供分布式程序共享的、树状结构的名字空间(内存中以ZNode为数据节点构成的树型数据模型)来相互协调。

  • 构建集群(高可用)
    集群中有一半以上的机器能正常工作,就能正常对外服务。
    客户端与任一台服务器建立TCP连接,断开后能自动与其他机器建立连接。

  • 顺序访问(严格顺序访问)
    对于客户端请求,zk都会分配一个全局递增的事务id,反映事务操作的先后顺序。以此来实现更高层次的同步原语。

  • 高性能
    全量数据存在于内存中。适合于多读操作。

参考:《从PAXOS到ZOOKEEPER分布式一致性原理与实践》

你可能感兴趣的:(zookeeper介绍及设计目标)