ETCD lease (二) ETCD 源码学习--lease(二)
发布时间
阅读量:
阅读量
针对 ETCD 源码的学习过程而言,在深入探讨众多复杂的源代码之前,默认会重点介绍相关的实现机制。如需深入了解源码细节的用户,请参考文章中提供的相关提示信息,并通过这些提示信息找到相应的源代码进行深入研究。
本文主要介绍 lessor 如果发现过期键,server 如何处理过期键的过程。
过期 lease 发现
lessor goroutine
func (le *lessor) runLoop() {
defer close(le.doneC)
for {
le.revokeExpiredLeases()
le.checkpointScheduledLeases()
...
}
}
在运行循环时(runLoop),我们会执行reviveExpiredLeases以检测已过期的lease记录,并将它们被推送到expiredC中去处理。
func (le *lessor) revokeExpiredLeases() {
var ls []*Lease
//最大过期元素数量
revokeLimit := leaseRevokeRate / 2
le.mu.R
全部评论 (0)
还没有任何评论哟~
