筆記
尋找Serf.io?農奴網站於10/02/2024關閉。可以找到先前從serf.io提供的文檔
農奴是一種用於服務發現和編排的分散解決方案,輕巧,高度可用且容忍度。
農奴在Linux,Mac OS X和Windows上運行。有效且輕巧的八卦協議用於與其他節點進行通信。農奴可以檢測節點故障並通知群集的其餘部分。事件系統建立在農奴之上,讓您使用Serf的八卦協議來傳播諸如部署,配置更改等事件。Serf完全沒有大師,沒有單一的失敗點。
以下是農奴的一些例子,儘管還有很多其他案例:
首先,為您的操作系統下載預製的農奴二進製文件,自己編譯農奴,或使用go get -u github.com/hashicorp/serf/cmd/serf
安裝。
接下來,讓我們開始幾個農奴劑。代理人一直持續到他們退出並處理農奴維護任務的通信為止。在真實的農奴設置中,系統中的每個節點都會運行一個或多個農奴代理(如果您運行多個群集類型,則可以運行多個代理。例如Web服務器與Memcached Servers)。
在單獨的終端會話中啟動每個農奴代理,以便我們可以看到每個終端的輸出。啟動第一個代理:
$ serf agent -node=foo -bind=127.0.0.1:5000 -rpc-addr=127.0.0.1:7373
...
在另一個終端會話中啟動第二個代理(第一個仍在運行時):
$ serf agent -node=bar -bind=127.0.0.1:5001 -rpc-addr=127.0.0.1:7374
...
在這一點上,兩名農奴劑正在獨立運行,但仍然沒有意識到彼此。現在讓我們告訴第一個代理加入現有群集(第二代理)。啟動農奴代理時,必須通過指定至少一個現有成員來加入現有群集。此後,農奴八卦和簇的其餘部分意識到聯接。在第三個終端會話中運行以下命令。
$ serf join 127.0.0.1:5001
...
如果您正在觀看終端,則應該看到兩個農奴劑都會意識到加入。您可以通過運行serf members
來查看農奴集群的成員來證明這一點:
$ serf members
foo 127.0.0.1:5000 alive
bar 127.0.0.1:5001 alive
...
在這一點上,您可以CTRL-C或強制殺死任何一種農奴代理,他們將適當更新其成員列表。如果您ctrl-c是農奴代理,它將通過通知群集離開的意圖來優雅地離開。如果您強制殺死代理,則最終將(通常在幾秒鐘內)被集群的另一個成員檢測到,該群集將通知節點故障的群集。
全面,全面的文檔可在農奴網站上查看:
https://github.com/hashicorp/serf/tree/master/docs
如果您想在農奴本身上工作,則首先需要安裝(需要1.10+版本)。確保您已正確安裝,包括設置Gopath。
接下來,將此存儲庫克隆到$GOPATH/src/github.com/hashicorp/serf
中,然後鍵入“ make
。片刻之後,您將有一個可執行的serf
:
$ make
...
$ bin/serf
...
注意: make
還將在$GOPATH/bin/
農奴首先是帶有命令行接口的serf
。農奴庫獨立於命令行代理, serf
。 serf
二進製文件位於cmd/serf
之下,可以通過發出命令go get -u github.com/hashicorp/serf/cmd/serf
單獨安裝。使用SELF庫的應用程序只需要包括github.com/hashicorp/serf
。
可以通過輸入測試來運行make test
。
如果您對代碼進行任何更改,請運行make format
以根據GO標準自動格式化代碼。