zk zookeeper實現命名服務

2021-10-13 07:45:58 字數 1080 閱讀 4336

世界上並沒有完美的程式,但是我們並不因此而沮喪,因為寫程式就是乙個不斷追求完美的過程。

命名服務,其實就是在zk中設定乙個服務節點,該節點儲存著該服務的位址,其他服務要呼叫這個服務時,會從zk中獲取這個節點,當監聽並獲取到該節點及其位址時,就說明該節點已經就緒並已準備好提供服務,其他節點就可以對該節點進行呼叫了。

這種方式其實與程式設計中的面向介面程式設計非常相似,該服務的節點就相當於乙個介面,在該服務沒有實現時,就可以將節點暴露出來,並告訴其他服務的開發者該服務將要提供的功能。其他服務的開發者就可以針對該服務將要提供的功能並行開發,而無需等到該服務完成後再開發。而對接時只要對該服務對應的znode監聽即可,只要該服務完成並註冊到zk,就會被發現,然後會被系統自動呼叫。以下是監聽/serv服務的url的實現:

public

class

nameservice

private zookeeper zk =

getzk()

;private zookeeper getzk()

catch

(exception e)

}private

void

close()

}catch

(exception e)

}private

void

getdata()

private watcher getwatcher()

;}private asynccallback.datacallback getcallback()

print

("code : "

+ code)

;print

("url : "

+ url);}

;}private

void

print

(object obj)

}

這裡使用原生的zookeeper類並通過通過非同步的方式實現呼叫,希望對大家有所幫助。

JS實現命名空間

作者 zhanhailiang 日期 2012 10 24在新增乙個屬性或者建立乙個命名空間之前,最好是首先檢查它是否已經存在,如下例 if typeof hwsl undefined 或者使用 的短路功能 var hwsl hwsl 但是這些附加的檢查會迅速產生大量重複的 如果想定義hwsl.cu...

命名管道(FIFO)的實現

管道隨程序 命名管道是乙個裝置檔案,是存在於硬碟上的檔案 用mkfifo 建立命名管道,可用於任何兩個程序之間的通訊 client.c 寫端 include include include include include include include define path tmp file.tm...

python實現檔案重新命名

encoding utf 8 importos path demo1 filelist os.listdir path 該資料夾下所有的檔案 包括資料夾 count 0 forfileinfilelist print file forfileinfilelist 遍歷所有檔案 olddir os.p...