cs-6.824 第8讲 zookeeper

程序员小x大约 2 分钟分布式系统分布式系统

cs-6.824 第8讲 zookeeper

今天的论文是关于线性一致性的,之所以要研读zookeeper的论文,部分原因是它是一个成功的现实世界系统,这是一个开源服务,很多人在使用它,已经被应用于众多实际软件中,因此它具有一定的实际效果和成功之处。

raft是一个库而不是一个服务,因此需要代码层级的集成,因此人们希望有一个服务可以做到像raft那样的功能,帮助人们快速的构建分布式系统。

另外一点,zookeeper本身也需要具有容错性,可能是三台、五台、七台等。 如果你购买了7台服务器运行,那么能否获得7倍的收益呢?

zookeeper运行在ZAB协议系统上,它基本和Raft相同。

现实中,更多的操作是读操作,而不是写操作。我们可以在主节点进行写操作,而在副本上进行读操作。

这样做是否会有问题?

如果客户端向一个随机副本发送请求,副本上的数据可能并不是最新的。

实际上zookeeper并不是一个线性一致性的解决方案,如果一个系统不提供线性一致性,它是否可用?

zookeeper:

  • 写操作是线性化的
  • 读操作不是线性化的。
  • FIFO 客户端顺序

它运行将读操作分散到任意副本上进行,因此读取的内容可能不是最新的。另一方面,zookeeper确保每个副本按照顺序逐一处理写入流,所有副本均按照相同的顺序执行写操作。所有由单个客户端生成的读写操作,系统也会按照顺序处理。

zookeeper可以解决那些问题?

  • VMWare VT test and set service
  • 发布配置信息供其他服务器使用。

Zookeeper的API像是一个文件系统,所以它拥有一个目录结构。

CREATE(path, data, flag)

DELETE(path, version)

EXISTS(path, watch);

example-count

Loading...