memberlist 方法

import "github.com/hashicorp/memberlist"
memberlist是一個(gè)庫乘寒,它使用基于 gossip 的協(xié)議管理集群成員關(guān)系和成員故障檢測的诵。
此類庫的用例意義深遠(yuǎn):所有分布式系統(tǒng)都需要成員關(guān)系万栅,而成員列表是管理集群成員關(guān)系和節(jié)點(diǎn)故障檢測的可重用解決方案.
成員列表最終是一致的,但平均收斂速度很快西疤。它收斂的速度可以通過協(xié)議上的各個(gè)旋鈕進(jìn)行大量調(diào)優(yōu)烦粒。通過嘗試通過多個(gè)路由與可能死節(jié)點(diǎn)通信,可以檢測到節(jié)點(diǎn)故障并部分容忍網(wǎng)絡(luò)分區(qū).

方法

  • func DefaultLocalConfig() *Config 返回一個(gè) struct
    DefaultLocalConfig的工作原理與DefaultConfig類似代赁,然而扰她,它返回一個(gè)優(yōu)化的本地環(huán)回地址的配置。默認(rèn)配置仍然是非常保守的芭碍,并且需要注意錯(cuò)誤徒役。
  • func Create(conf *Config) (*Memberlist, error)
    Create將使用給定的配置創(chuàng)建一個(gè)新的成員列表。它還不會(huì)連接到任何其他節(jié)點(diǎn)(請(qǐng)參見Join)窖壕,但會(huì)啟動(dòng)所有偵聽器廉涕,以允許其他節(jié)點(diǎn)加入這個(gè)成員列表。創(chuàng)建成員列表后艇拍,用戶不應(yīng)該再修改給定的配置狐蜕。
  • func (m *Memberlist) GetHealthScore() int
    數(shù)字越低越好,0 意味著“完全健康”
  • func (m *Memberlist) Join(existing []string) (int, error)
    Join用于獲取現(xiàn)有的成員列表卸夕,并嘗試通過聯(lián)系所有給定主機(jī)并執(zhí)行狀態(tài)同步來連接集群层释。最初,Memberlist只包含我們自己的狀態(tài)快集,因此這樣做將導(dǎo)致遠(yuǎn)程節(jié)點(diǎn)意識(shí)到這個(gè)節(jié)點(diǎn)的存在贡羔,從而有效地加入集群。
    這將返回成功聯(lián)系的主機(jī)數(shù)量个初,如果無法聯(lián)系到主機(jī)乖寒,則返回錯(cuò)誤。如果返回錯(cuò)誤院溺,則節(jié)點(diǎn)沒有成功加入集群楣嘁。
  • func (m *Memberlist) Leave(timeout time.Duration) error
    Leave將廣播一條Leave消息,但不會(huì)關(guān)閉后臺(tái)偵聽器珍逸,這意味著節(jié)點(diǎn)將繼續(xù)參與gossip和狀態(tài)更新逐虚。
    這將阻塞,直到成功地將leave消息廣播到集群的一個(gè)成員(如果有的話)谆膳,或者直到達(dá)到指定的超時(shí)叭爱。
    這個(gè)方法可以安全地多次調(diào)用,但是在集群已經(jīng)關(guān)閉之后不能再調(diào)用它漱病。
  • func (m *Memberlist) LocalNode() *Node
    LocalNode用于返回本地節(jié)點(diǎn)
  • func (m *Memberlist) Members() []*Node
    Members返回所有已知的活著的節(jié)點(diǎn)列表买雾。返回的節(jié)點(diǎn)結(jié)構(gòu)不能被修改把曼。如果希望修改節(jié)點(diǎn),請(qǐng)先進(jìn)行復(fù)制漓穿。
  • func (m *Memberlist) NumMembers() (alive int)
    NumMembers返回當(dāng)前已知的活著的節(jié)點(diǎn)的數(shù)量嗤军。在調(diào)用NumMembers和調(diào)用Members的時(shí)候,活著節(jié)點(diǎn)的數(shù)量可能已經(jīng)改變器净,所以這個(gè)不應(yīng)該用來確定Members返回多少個(gè)members型雳。
  • func (m *Memberlist) Ping(node string, addr net.Addr) (time.Duration, error)
    Ping向具有指定名稱的節(jié)點(diǎn)發(fā)起Ping当凡。
  • func (m *Memberlist) ProtocolVersion() uint8
    返回此memberlist當(dāng)前使用的協(xié)議版本山害。
  • func (m *Memberlist) SendBestEffort(to *Node, msg []byte) error
    SendBestEffort使用傳輸?shù)牟豢煽康臄?shù)據(jù)包的接口以給定節(jié)點(diǎn)上的用戶消息為目標(biāo)(不使用gossip機(jī)制)。消息的最大大小取決于此memberlist實(shí)例的已配置UDPBufferSize沿量。
  • func (m *Memberlist) SendReliable(to *Node, msg []byte) error
    sendreresponsible使用可靠的面向流的傳輸接口浪慌,以指定節(jié)點(diǎn)上的用戶消息為目標(biāo)(不使用gossip機(jī)制)。如果沒有返回錯(cuò)誤朴则,并且消息的大小沒有限制权纤,則保證交付。
  • func (m *Memberlist) Shutdown() error
    Shutdown將停止此memberlist的網(wǎng)絡(luò)活動(dòng)的任何后臺(tái)維護(hù)乌妒,導(dǎo)致它顯示為“dead”汹想。在此之前,將不會(huì)廣播leave消息撤蚊,因此所剩下的集群必須使用探測來檢測此節(jié)點(diǎn)的關(guān)閉古掏。如果希望更優(yōu)雅地退出集群,請(qǐng)?jiān)陉P(guān)閉之前調(diào)用Leave侦啸。
    這個(gè)方法可以安全調(diào)用多次槽唾。
  • func (m *Memberlist) UpdateNode(timeout time.Duration) error
    UpdateNode is used to trigger re-advertising the local node.
    這將阻塞,直到更新消息成功地廣播到集群的一個(gè)成員(如果存在更新消息)光涂,或者直到達(dá)到指定的超時(shí)庞萍。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市忘闻,隨后出現(xiàn)的幾起案子钝计,更是在濱河造成了極大的恐慌,老刑警劉巖齐佳,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件葵蒂,死亡現(xiàn)場離奇詭異,居然都是意外死亡重虑,警方通過查閱死者的電腦和手機(jī)践付,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缺厉,“玉大人永高,你說我怎么就攤上這事隧土。” “怎么了命爬?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵曹傀,是天一觀的道長。 經(jīng)常有香客問我饲宛,道長皆愉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任艇抠,我火速辦了婚禮幕庐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘家淤。我一直安慰自己异剥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布絮重。 她就那樣靜靜地躺著冤寿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪青伤。 梳的紋絲不亂的頭發(fā)上督怜,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音狠角,去河邊找鬼号杠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛擎厢,可吹牛的內(nèi)容都是我干的究流。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼动遭,長吁一口氣:“原來是場噩夢啊……” “哼芬探!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起厘惦,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤偷仿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后宵蕉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酝静,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颇蜡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年摊崭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钻弄。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稼稿,死狀恐怖薄榛,靈堂內(nèi)的尸體忽然破棺而出讳窟,到底是詐尸還是另有隱情,我是刑警寧澤敞恋,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布丽啡,位于F島的核電站,受9級(jí)特大地震影響硬猫,放射性物質(zhì)發(fā)生泄漏补箍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一啸蜜、第九天 我趴在偏房一處隱蔽的房頂上張望坑雅。 院中可真熱鬧,春花似錦盔性、人聲如沸霞丧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至后豫,卻和暖如春悉尾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挫酿。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工构眯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人早龟。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓惫霸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親葱弟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子壹店,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 由于文章太長,簡書放不下芝加,完整文檔見Consul文檔硅卢。 一、安裝 Consul Consul 的安裝很簡單藏杖,安裝 ...
    FlySheep_ly閱讀 10,134評(píng)論 1 13
  • CDN緩存 瀏覽器本地緩存失效后将塑,瀏覽器會(huì)向CDN邊緣節(jié)點(diǎn)發(fā)起請(qǐng)求。類似瀏覽器緩存蝌麸,CDN邊緣節(jié)點(diǎn)也存在著一套緩存...
    曬太陽的貓_ac4c閱讀 170評(píng)論 0 0
  • 【0902今日話題】 看過這個(gè)2分鐘的視頻点寥,你有什么感受呢? 人生来吩,不設(shè)限敢辩。 不管是美國摩西奶奶8...
    宋明媚閱讀 176評(píng)論 0 2
  • “面目全非的汉柒,不是時(shí)光,而是你”偶然讀到此句责鳍,頓時(shí)語塞碾褂。時(shí)光究竟是怎么流逝的?我們到底是怎么改變的历葛?仿佛還是昨日正塌,...
    若凡666閱讀 186評(píng)論 0 0