女人18毛片a级毛片一区二区-男男瑟瑟视频-午夜亚洲一区二区,国产福利91精品,日韩精品在线免费视频,国产欧美在线一区

沃趣科技產(chǎn)品與技術(shù)資源中心
產(chǎn)品白皮書丨最佳實(shí)踐合集丨行業(yè)報(bào)告丨技術(shù)文章
資源 > 技術(shù)實(shí)踐|技術(shù)實(shí)踐|分布式時(shí)間鎖

技術(shù)實(shí)踐|技術(shù)實(shí)踐|分布式時(shí)間鎖

2023年06月13日

前言

K8s client-go中,源生自帶了一個(gè)leader庫,便于實(shí)現(xiàn)分布式時(shí)間鎖。



分布式時(shí)間鎖使用場景

以K8s原生的controller-manager組件為例,當(dāng)有三臺master機(jī)器時(shí),默認(rèn)會(huì)運(yùn)行三個(gè)controller-manager實(shí)例,但只有一個(gè)在干活,另外兩個(gè)處于備用狀態(tài)。而這個(gè)功能的實(shí)現(xiàn),就依賴于分布式時(shí)間鎖。



時(shí)間鎖配置說明


 所有相關(guān)配置如下圖所示:


1.png

鎖的持有者,會(huì)每隔retryPeriod更新鎖的有效期,表示它一直在持有這把鎖。


特別說明下兩個(gè)參數(shù):

一. leaseTimeout 

  1. 舉個(gè)例子:現(xiàn)在有個(gè)房間,我要求當(dāng)有人進(jìn)入房間時(shí),下一個(gè)人至少等待1小時(shí)才可進(jìn)入房間。這時(shí),我們可以將leaseTimeout設(shè)置為1小時(shí),每當(dāng)有人進(jìn)入房間,則將房門上的時(shí)候改為當(dāng)前時(shí)間。下一個(gè)人準(zhǔn)備進(jìn)入時(shí),必須檢查房門上的時(shí)間距離當(dāng)前時(shí)間超過leaseTimeout。


  2. 之所以要這樣設(shè)計(jì),是因?yàn)樵诜植际角闆r下,只有程序活著的時(shí)候才可以要求它干什么,而一旦它異常了,它就失控了。而為了防止在它異常時(shí),其它活著的程序可以正常接替它,所以就約定了leaseTimeout,一旦超過這個(gè)時(shí)間,則直接認(rèn)定它異常,可以接管。


二. renewDeadline 

  1. 上面的約定,無法防止腦裂。因?yàn)殒i持有者在leaseTimeout中未更新鎖,并不代表它已經(jīng)掛了,它可能只是因?yàn)槠渌驘o法更新鎖,或者程序夯住了,之后它可能再恢復(fù)。而如果它在別人接替它后,原持有者再恢復(fù)運(yùn)行,則會(huì)導(dǎo)致腦裂,為了防止這種情況發(fā)生,針對鎖持有者就設(shè)置了renewDeadline

  2. 如果鎖持有者如果無法在renewDeadline時(shí)間內(nèi)完成鎖的更新,則要求鎖持有者強(qiáng)制釋放鎖,程序退出。


  3. 所以renewDeadline必須比leaseTimeout



leader運(yùn)行流程


2.png




上面流程很清晰,下面單獨(dú)詳細(xì)講下:

嘗試獲取鎖并更新鎖




3.png




選舉時(shí)序圖


從上面獲取鎖流程,除了第一次創(chuàng)建鎖之外,選舉的關(guān)鍵就是觀察時(shí)間: observedTime


4.png



  • id1異常情況


5.png



  • id1網(wǎng)絡(luò)異常無法更新鎖

6.png


從時(shí)序圖中可看出來,監(jiān)聽時(shí)間的必要性。所有的flower(待接替者)都必須更新本地監(jiān)聽時(shí)間,必需保證在renewDeadline時(shí)間中,鎖未發(fā)生任何變化,否則就需要再重新選舉。


當(dāng)然,還有一種極端情況:兩個(gè)flower同時(shí)發(fā)現(xiàn)鎖未發(fā)生任何變化,同時(shí)嘗試去獲取鎖,這個(gè)時(shí)候就需要用到etcd的resourceVersion機(jī)制:在update時(shí)需要上送查詢時(shí)的resourceVersion,表示在這過程中該資源未發(fā)生過其它更新。


原理就類似sql的select for update –> 查詢時(shí)鎖定記錄。在這種情況下,etcd會(huì)保證先更新的能更新成功,后更新的會(huì)失敗。這樣就保證這種極端情況不會(huì)腦裂。

讓數(shù)據(jù)庫基礎(chǔ)設(shè)施更簡單
加速企業(yè)數(shù)字化轉(zhuǎn)型建設(shè)及落地
立即咨詢

沃趣科技

中立的企業(yè)級數(shù)據(jù)庫云
十年磨一劍十年來始終如一的專注數(shù)據(jù)庫生態(tài)領(lǐng)域
夯實(shí)技術(shù)底蘊(yùn)打造最適合時(shí)代的數(shù)據(jù)庫基礎(chǔ)設(shè)施
業(yè)績持續(xù)領(lǐng)先目前已累計(jì)服務(wù)超3000家企業(yè)客戶

留言咨詢

完善信息,我們第一時(shí)間跟您聯(lián)系
姓名
手機(jī)
公司
所在地區(qū)
咨詢問題