메모
serf.io를 찾고 계십니까? SERF 웹 사이트는 10/02/2024에 종료되었습니다. Serf.io에서 이전에 제공된 문서는 https://github.com/hashicorp/serf/blob/master/docs/index.html.markdown을 찾을 수 있습니다.
SERF는 가볍고 고도로 사용 가능하며 결함이있는 서비스 발견 및 오케스트레이션을위한 분산 된 솔루션입니다.
SERF는 Linux, Mac OS X 및 Windows에서 실행됩니다. 효율적이고 가벼운 가십 프로토콜은 다른 노드와 통신하는 데 사용됩니다. SERF는 노드 고장을 감지하고 나머지 클러스터를 알릴 수 있습니다. 이벤트 시스템은 SERF 위에 구축되므로 SERF의 가십 프로토콜을 사용하여 배포, 구성 변경 등과 같은 이벤트를 전파 할 수 있습니다. SERF는 단일 고장 지점없이 완전히 마스터가 없습니다.
SERF의 사용 사례는 다음과 같습니다.
먼저 운영 체제에 미리 구축 된 세르프 바이너리를 다운로드하거나 SERF 직접 컴파일하거나 go get -u github.com/hashicorp/serf/cmd/serf
사용하여 설치하십시오.
다음으로, SERF 에이전트 몇 개를 시작합시다. 에이전트는 SERF의 유지 보수 작업의 의사 소통을 중단하고 처리하라는 지시를받을 때까지 운영됩니다. 실제 SERF 설정에서 시스템의 각 노드는 하나 이상의 SERF 에이전트를 실행합니다 (여러 클러스터 유형을 실행하는 경우 여러 에이전트를 실행할 수 있습니다. 예를 들어 웹 서버 대 멤버링 서버).
별도의 터미널 세션에서 각 SERF 에이전트를 시작하여 각각의 출력을 볼 수 있습니다. 첫 번째 에이전트를 시작하십시오.
$ 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 에이전트가 독립적으로 실행되고 있지만 여전히 서로를 알지 못합니다. 이제 첫 번째 에이전트에게 기존 클러스터 (두 번째 에이전트)에 가입하도록하겠습니다. SERF 에이전트를 시작할 때 최소한 하나의 기존 멤버를 지정하여 기존 클러스터에 가입해야합니다. 그 후, SERF 험담과 클러스터의 나머지 부분은 조인을 알게됩니다. 세 번째 터미널 세션에서 다음 명령을 실행하십시오.
$ serf join 127.0.0.1:5001
...
터미널을보고 있다면 두 SERF 에이전트가 조인을 인식하는 것을 볼 수 있습니다. serf members
실행하여 SERF 클러스터의 구성원을 볼 수 있습니다.
$ serf members
foo 127.0.0.1:5000 alive
bar 127.0.0.1:5001 alive
...
이 시점에서 CTRL-C 또는 Force는 SERF 에이전트 중 하나를 죽일 수 있으며 회원 목록을 적절하게 업데이트합니다. CTRL-C A SERF 에이전트 인 경우, 클러스터에게 떠나려는 의도를 알림으로써 우아하게 떠날 것입니다. 에이전트를 죽인 경우, 클러스터의 다른 멤버에 의해 결국 (보통 몇 초 안에) 감지되어 클러스터에 노드 고장을 알립니다.
전체적이고 포괄적 인 문서는 SERF 웹 사이트에서 볼 수 있습니다.
https://github.com/hashicorp/serf/tree/master/docs
SERF 자체에서 작업하려면 먼저 설치해야합니다 (버전 1.10+가 필요합니다 ). Gopath 설정을 포함하여 올바르게 설치해야합니다.
다음 으로이 저장소를 $GOPATH/src/github.com/hashicorp/serf
로 복제 한 다음 make
입력하십시오. 잠시 후에는 작동하는 serf
실행 파일이 있습니다.
$ make
...
$ bin/serf
...
참고 : make
또한 $GOPATH/bin/
아래에 실행 파일의 사본을 배치합니다.
SERF는 무엇보다도 명령 줄 인터페이스 인 serf
있는 라이브러리입니다. SERF 라이브러리는 명령 줄 에이전트 인 serf
와 무관합니다. serf
바이너리는 cmd/serf
아래에 있으며 명령을 발행하여 독립형 go get -u github.com/hashicorp/serf/cmd/serf
설치할 수 있습니다. SERF 라이브러리를 사용하는 응용 프로그램에는 github.com/hashicorp/serf
만 포함해야합니다.
make test
입력하여 테스트를 실행할 수 있습니다.
코드를 변경하는 경우 GO 표준에 따라 코드를 자동으로 포맷하려면 RUNE make format
작성하십시오.