詳解租約機(jī)制以及在hbase中的應(yīng)用-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

鄭州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),鄭州網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為鄭州成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的鄭州做網(wǎng)站的公司定做!

詳解租約機(jī)制以及在hbase中的應(yīng)用

為什么需要Lease

分布式系統(tǒng)中為什么需要租約機(jī)制,這是因為在分布式系統(tǒng),為了保證服務(wù)的高可用,需要在服務(wù)發(fā)生故障的時候及時啟動另外一個服務(wù)實例以替換故障服務(wù)。這樣就需要在服務(wù)端和客戶端或者服務(wù)端和控制中心維持一個心跳信息,用于服務(wù)進(jìn)程向控制中心匯報當(dāng)前自己的健康情況,如果控制中心在一段時間收不到服務(wù)進(jìn)程上報的心跳,則會啟動新的進(jìn)程繼續(xù)對外提供服務(wù)。

但是,由于實際網(wǎng)絡(luò)情況的復(fù)雜性,控制中心無法收到心跳時不能準(zhǔn)確地判斷究竟是服務(wù)故障了還是服務(wù)進(jìn)程和控制中心之間的網(wǎng)絡(luò)發(fā)生了故障。這種情況下控制中心冒然地啟用新進(jìn)程有可能會造成“雙主”這種情況出現(xiàn)。

為避免上述情況的發(fā)生引入了租約機(jī)制,此時服務(wù)節(jié)點持續(xù)向控制中心申請短時間租約,控制中心在已派發(fā)的租約過期之前,不會啟用新服務(wù)節(jié)點,而服務(wù)節(jié)點租約過期時若還無法從控制中心申請到新租約,自己中斷客戶鏈接。

此外,租約機(jī)制還可用于客戶端和服務(wù)端之間的解藕,避免客戶端進(jìn)程失去響應(yīng)時,其占用的服務(wù)端資源長期得不到釋放進(jìn)而影響到服務(wù)端的穩(wěn)定。

Lease的實現(xiàn)

在實際系統(tǒng)中,如果依賴一個中心結(jié)點向外發(fā)布lease存在很大的風(fēng)險,那就是如果該中心結(jié)點發(fā)生宕機(jī)或者網(wǎng)絡(luò)故障,那么服務(wù)節(jié)點由于接收不到新的租約那么會導(dǎo)致整個服務(wù)集群進(jìn)入不可用狀態(tài)。因此,在實際使用中,對外提供lease服務(wù)的往往是由多個進(jìn)程實例組成的另外一套集群,該集群具有高可用性,可以對外提供lease服務(wù),比如zookeeper集群。

HRegionServer的租約Lease管理

租約線程的初始化

在HRegionServer的run主循環(huán)里會調(diào)用preRegistrationInitialization預(yù)先初始化一些線程,包括初始化集群連接信息setupClusterConnection()、healthCheckChore、pauseMonitor、initializeZookeeper以及initializeThreads()。

其中在initializeThreads()中會初始化各類線程,這些線程包括了這臺regionServer的lease線程:

this.compactionChecker = new CompactionChecker(this, this.threadWakeFrequency, this); //檢查合并請求 
this.periodicFlusher = new PeriodicMemstoreFlusher(this.threadWakeFrequency, this);  //周期性地檢查memstore的flush請求 
this.leases = new Leases(this.threadWakeFrequency); 

當(dāng)前標(biāo)題:詳解租約機(jī)制以及在hbase中的應(yīng)用-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/article16/dsisgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈網(wǎng)頁設(shè)計公司、微信公眾號App開發(fā)、品牌網(wǎng)站設(shè)計、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化