最近在学习分布式,将学习笔记,总结精华分享出来,欢迎大家一起学习一起讨论!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
前言:Lease 机制最重要的应用:判定节点状态。
基于 lease 的分布式 cache 系统
一、
1、原理:中心服务器向各节点发送数据的同时颁发一个lease,每个lease具有一个有效期(确保中心服务器与各节点的时钟时同步的),在lease的有效期内,中心服务器保证不会修改数据的值,节点收到数据和lease后,将数据加入本地cache,一旦对应的lease过期,将删除本地的cache数据。
2、基本流程:
客户端节点读取元数据:
①判断元数据是否处于本地的cache中且lease处于有效期内,是就直接返回元数据信息
②不满足条件1的话,向中心服务器节点请求读取元数据信息。
③服务器收到读请求后返回数据同时颁发一个对应的lease
④客户端收到服务器返回的数据记录到本地cache,如果失败或超时,读取失败退出流程。
客户端节点修改元数据流程
①节点向服务器发起请求修改元数据
②服务器收到请求,阻塞所有新的读请求,接收请求,但是不返回数据
③服务器等待所有与该元数据相关的lease超时
④服务器修改元数据并向客户端节点返回修改成功
二、lease 机制可以容错的关键是:服务器一旦发出数据及 lease,无论客户端是否收到,也无论后续客户端是否宕机,也无论后续网络是否正常,服务器只要等待 lease 超时