cs-6.824 第8讲 zookeeper
大约 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...