分散式事務鎖模式之一:租用Lease
分散式系統中群集節點需要對某些資源的獨佔訪問權。但是同時會造成其他節點操作崩潰;其實這些節點可以對資源實現短暫的連線然後斷開,這樣它們不會無限期地保持對資源的訪問。
應用案例:
- Google的[chubby]服務以類似方式實現了限時租賃機制
- [zookeeper]會話使用與複製租約相似的機制進行管理。
- Apache kafka[KIP-631] 提出使用時間限制的租賃管理組成員資格和Kafka經紀人的故障檢測。
- [etcd]提供了有時間限制的租賃工具,客戶可以使用該工具來協調其活動以及組成員身份和故障檢測。
- dhcp協議允許連線的裝置租用IP地址。具有多個DHCP伺服器的故障轉移協議的工作方式與此處說明的實現類似。
本文使用程式碼演示了這種模式的實現,點選標題見原文。
原理:
群集節點可以在有限的時間段內請求租約,租約在一段期限後會到期。如果節點想要延長訪問許可權,則可以在租約到期之前再更新租約。
使用Consistent Core實現租約機制以提供容錯能力和一致性。有與租賃相關的“生存時間time to live”的值。
群集節點可以在Consistent Core建立一個包含租借lease的key,這個租借在領導者和追隨者之間複製以提供容錯能力。擁有租借lease的節點負責定期重新整理它。 客戶使用HeartBeat在Consistent Core中重新整理time to live值。
租借lease是在伺服器中的所有Consistent Core節點上建立的,但只有領導者跟蹤lease的超時,其他跟從者未跟蹤超時。這樣做是因為我們需要領導者使用自己的單調時鐘來決定租借何時到期,然後讓追隨者知道租借何時到期。這樣可以確保像Consistent Core中的其他任何決定一樣,節點也就租約到期達成共識。
相關文章
- etcd分散式鎖及事務分散式
- 分散式事務Saga模式分散式模式
- 分散式鎖和spring事務管理分散式Spring
- SpringCloud Alibaba(六) - Seata 分散式事務鎖SpringGCCloud分散式
- oracle資料庫事務transaction鎖lock模式思考之一Oracle資料庫模式
- seata分散式事務AT模式介紹(二)分散式模式
- 分散式事務 | 使用DTM 的Saga 模式分散式模式
- 分散式事務(一)—分散式事務的概念分散式
- 比較微服務中的分散式事務模式微服務分散式模式
- 微服務的分散式事務模式比較 | RedHat微服務分散式模式Redhat
- php基於dtm分散式事務管理器實現tcc模式分散式事務demoPHP分散式模式
- 實現宣告式鎖,支援分散式鎖自定義鎖、SpEL和結合事務分散式
- TX-LCN分散式事務之LCN模式分散式模式
- 分散式事務(3)---RocketMQ實現分散式事務原理分散式MQ
- 分散式事務和分散式hash分散式
- 分散式事務(4)---RocketMQ實現分散式事務專案分散式MQ
- Seata 分散式事務框架 TCC 模式原始碼分析分散式框架模式原始碼
- Seata分散式事務TA模式原始碼解讀分散式模式原始碼
- 分散式事務解決方案——柔性事務與服務模式分散式模式
- 分散式事務之事務實現模式與技術(四)分散式模式
- 理解分散式事務分散式
- 分散式事務概述分散式
- 聊聊分散式事務分散式
- seata 分散式事務分散式
- 分散式系統(三)——分散式事務分散式
- 分散式事務~從seata例項來學習分散式事務分散式
- node.js 中使用redis實現分散式事務鎖Node.jsRedis分散式
- 分散式事務 SEATA-1.4.1 AT模式 配合NACOS 應用分散式模式
- 微服務架構 | 11.1 整合 Seata AT 模式實現分散式事務微服務架構模式分散式
- 微服務痛點-基於Dubbo + Seata的分散式事務(AT)模式微服務分散式模式
- 分散式系列七: 分散式事務理論分散式
- [分散式][分散式鎖]淺談分散式鎖分散式
- 分散式事務之Spring事務與JMS事務(二)分散式Spring
- 分散式事務介紹分散式
- 分散式事務實戰分散式
- 分散式事務總結分散式
- SpringCloud(六)分散式事務SpringGCCloud分散式
- 一次ORACLE分散式事務鎖異常處理分析Oracle分散式