笔记
寻找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标准自动格式化代码。