分布式协调系统

本文探讨了Chubby服务的系统架构,如何通过主备部署实现高可用,并介绍了数据模型、会话机制、缓存策略和与Zookeeper的比较。重点讲解了一致性保障措施,如sync() API和zxid比较,以及其在领导选举、配置管理等应用场景中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

chubby锁服务

系统架构

Chubby保证了可靠性与高可用性,且在语义上易于理解(易于编程?)
使用5台服务器,一台为主4台作为备份,保证有一台主服务器且主服务器不可用时,能够选举出一台备用服务器作为主服务器

数据模型

以树形结构保存与管理目录
提供查询与加锁服务

会话

客户端通过租期与续约来保持服务器的keepalive,服务器通过term保证一致性

客户端缓存

客户端可缓存部分数据信息,以减轻服务器压力
服务器修改数据需保证所有缓存数据的客户端都接受到数据已过期的通知

zookeeper

zookeeper任意一台服务器均可响应客户端的读操作(写操作同样只能主服务器进行?),这样相比于Chubby获得了更高的性能。

一致性

虽然主从服务器通过ZAB协议来保证更新操作的一致性与顺序写,但是由于传播时间的问题,客户端任有可能获得非最新的数据(即该数据在主从服务器中不一致)
1.提供sync()API,该操作使得从属服务器从主控服务器同步状态信息。因此,当客户端在读数据前调用该API则一定会获得最新的数据。
2.(若客户端没有调用sync())客户端与服务器通信时,附带一个zxid,服务器会比对zxid与自身的zxid,确保客户端一定不会获取比自己目前还早的数据。

API

zookeeper提供一系列API

应用场景

核心通过,当 当前节点发生更改,则向所有watch节点发送消息的功能(消息订阅发布?)
1.领导者选举
2.配置管理
3.成员管理
4.任务分配
5.锁(在锁节点拉链,在自己前面一个node设置watch。所以知道拿到锁只会被唤醒一次)
6.双向路障同步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值