Lease 中文叫租约,是一种广泛应用于分布式系统领域的协议,它是一种维护分布式系统一致性的有效工具。
Lease 通常定义为:颁发者在一定期限内給予持有者一定权利的协议。
Lease 表达了颁发者在一定期限内的承诺,只要未过期颁发者必须严格遵守 lease 约定的承诺。
Lease 的持有者在期限内使用颁发者的承诺,但 lease 一旦过期必须放弃使用或者重新和颁发者续约。
下面看看 lease 机制的几个具体应用。
1. 动态密钥管理
中心密钥服务器维护着全局的密钥生成和发放,所有需要使用密钥的外围系统向密钥服务器申请密钥用于本系统的加解密工作。出于性能和可用性考虑,不能每个请求都向中心服务器去申请,因此密钥通常被缓存在本地系统中。那么当需要修改中心系统的密钥时(出于安全性考虑的定期修改),如何保证所有使用该密钥的本地系统都立刻丢弃过期的密钥,而立刻向中心密钥服务器重新申请最新的密钥,并保持所有系统中密钥的一致性?(不一致可能导致系统不可用)。
这种场景非常适合使用 lease 机制来解决,中心服务器发放密钥的时候,同时发放一个 lease 承诺在一定时间内不修改该密钥。