1.Zookeep的客户端API功能强大,其中包括:
- 保障强一致性、有序性和持久性.
- 实现通用的同步原语的能力。
- 在实际分布式系统中,并发往往导致不正确的行为。ZooKeeper提供了一种简单的并发处理机制。
2.ZooKeeper不适用的场景
整个ZooKeeper的服务器集群管理着应用协作的关键数据。ZooKeeper不适合用作海量数据存储.
最佳实践还是应该将应用数据和协同数据独立开.
3.分布式系统的定义为:
分布式系统是同时跨越多个物理主机,独立运行的多个软件组件所组成的系统我们采用分布式去设计系统有很多原因,分布式系统能够利用多处理器的运算能力来运行组件,比如并行复制任务。一个系统也许由于战略原因,需要分布在不同地点,比如一个应用由多个不同地点的服务器提供服务
4.在真实的系统中,我们需要特别注意以下问题:
消息传输可能会发生任意延迟,比如,因为网络拥堵。这种任意延迟可能会导致不可预期的后果。比如,根据基准时钟,进程P先发送了一个消息,之后另一个进程Q发送了消息,但是进程Q的消息也许会先完成传送。
操作系统的调度和超载也可能导致消息处理的任意延迟。当一个进程向另一个进程发送消息时,整个消息的延时时间约等于发送端消耗的时间、传输时间、接收端的处理时间的总和。如果发送或接收过程需要调度时间进行处理,消息延时会更高。
使用时间概念的系统并不少见,比如,确定某一时间系统中发生了哪些事件。处理器时钟并不可靠,它们之间也会发生任意的偏移。因此,依赖处理器时钟也许会导致错误的决策。
5.要实现主-从模式的系统,我们必须解决以下三个关键问题
如果主节点发送错误并失效,系统将无法分配新的任务或重新分配已失败的任务。
如果从节点崩溃,已分配的任务将无法完成。
如果主节点和从节点之间无法进行信息交换,从节点将无法得知新任务分配给它。
6.ZooKeeper的设计尽可能满足一致性和可用性,当然,在发生网络分区时ZooKeeper也提供了只读能力。
以上内容本文摘录Zookeeper-分布式过程系统技术详解 书中的内容学习.