到期阈值控制续订租约的续订时间。
例如:在我看来,如果租约 TTL 为 10 分钟,并且到期阈值设置为 1 分钟,那么在获得租约 9 分钟后,spring-cloud-vault 将续订租约。
你的理解是正确的。
什么事min-renewal
?
当您的租约剩余有效期少于 1 分钟(例如 30 秒)时,计算的续订时间将是过去 30 秒(或者现在,因为我们无法安排过去发生的事情)。min-renewal
有助于消除续订请求。这是因为,在这种情况下,刷新会立即发生。
续订后, SecretLeaseContainer
将安排报告租约有效期略小于 30 秒的后续续订。如果剩余租约期限少于expiry-threshold
.
例子:
expiry-threshold
: 60 秒
min-renewal
: 10 秒
以下事件列表以时间相关性显示了假设 TTL 是最终的且无法扩展的时间发生了什么:
- 10:00:00获得租约。TTL 10 分钟(600 秒)。在 9 分钟内安排续租(
10 minutes TTL - 1 minute
到期阈值 -> 9 minutes
)
- 10:09:00续租。剩余 TTL 1 分钟(60 秒)。在 10 秒内安排租约续订(
1 minute TTL - 1 minute
到期阈值 -> 0 分钟。回退到10 seconds
最小续订,因为这是较大的值 -> 10 seconds
)。
- 10:09:10续租。剩余 TTL 50 秒。在 10 秒内安排租约续订(
50 seconds TTL - 1 minute
到期阈值 -> -10 seconds
。回退到 10 秒最小续订,因为这是较大的值 -> 10 秒)。
- (继续直到到达
10 seconds
)
- 10:09:50续租。剩余 TTL 小于
10 seconds
. Min-renew 大于剩余的 TTL,租约被视为过期。
到期阈值大于最小续订的示例:
expiry-threshold
: 5 分钟 (180 秒)
min-renewal
: 6 分钟 (360 秒)
以下事件列表以时间相关性显示了假设 TTL 是最终的且无法扩展的时间发生了什么:
10:00:00获得租约。TTL 10 minutes
(600 秒)。在 6 分钟内安排续租(10 minutes TTL - 5 minute
到期阈值 -> 5 minutes
。Min-renewal 设置为 6 分钟以最多发出一次续订6 minutes
-> 6 minutes
)
10:06:00获得租约。TTL 4 minutes
(360 秒)。在 6 分钟内安排租约续订(4 minutes TTL - 5 minute
到期阈值 -> -1 minutes
. 6 minutes
min-renewal,因为它大于剩余的 TTL,因此租约被视为已过期)