Notiz
Auf der Suche nach Serf.io? Die SERF -Website wurde am 10.02.2024 geschlossen. Die zuvor von serf.io bedienten Dokumente finden Sie unter https://github.com/hashicorp/serf/blob/master/docs/index.html.markdown
Leider ist eine dezentrale Lösung für die Erkennung und Orchestrierung, die leicht, hoch verfügbar und Fehlertolerant ist.
Leider läuft unter Linux, Mac OS X und Windows. Ein effizientes und leichtes Klatschprotokoll wird verwendet, um mit anderen Knoten zu kommunizieren. Leider kann Knotenfehler erkennen und den Rest des Clusters benachrichtigen. Ein Ereignissystem ist auf Sachal aufgebaut, mit dem Sie das Gossip -Protokoll von SREF verwenden können, um Ereignisse wie Bereitstellungen, Konfigurationsänderungen usw. zu verbreiten, ohne dass der Fehler ohne einen einzigen Fehler meistern kann.
Hier sind einige Beispielanwendungen von Sachstellen, obwohl es viele andere gibt:
Laden Sie zunächst einen vorgefertigten Leibeigenen für Ihr Betriebssystem herunter, kompilieren Sie sich selbst oder installieren Sie sie mit go get -u github.com/hashicorp/serf/cmd/serf
.
Als nächstes beginnen wir ein paar Leibeigenen. Agenten laufen, bis sie aufgefordert werden, die Kommunikation von Wartungsaufgaben von Leibeigenen zu beenden und zu übernehmen. In einem echten SWER -Setup wird jeder Knoten in Ihrem System ein oder mehrere Leibeigenen ausführen (er kann mehrere Agenten ausführen, wenn Sie mehrere Cluster -Typen ausführen. Z. B. Webserver im Vergleich zu Memcached -Servern).
Starten Sie jeden SW -Agenten in einer separaten Terminalsitzung, damit wir die Ausgabe von jedem sehen können. Starten Sie den ersten Agenten:
$ serf agent -node=foo -bind=127.0.0.1:5000 -rpc-addr=127.0.0.1:7373
...
Starten Sie den zweiten Agenten in einer anderen Terminalsitzung (während der erste noch läuft):
$ serf agent -node=bar -bind=127.0.0.1:5001 -rpc-addr=127.0.0.1:7374
...
Zu diesem Zeitpunkt laufen zwei Leibeigenen unabhängig, sind sich jedoch noch nicht bewusst. Sagen wir nun dem ersten Agenten, dass er sich einem vorhandenen Cluster (dem zweiten Agenten) anschließen soll. Bei der Start eines SWER -Agenten müssen Sie sich einem vorhandenen Cluster anschließen, indem Sie mindestens ein vorhandenes Mitglied angeben. Danach wird der Leibeig und der Rest des Clusters auf die Verbindung aufmerksam. Führen Sie die folgenden Befehle in einer dritten Terminalsitzung aus.
$ serf join 127.0.0.1:5001
...
Wenn Sie Ihre Terminals beobachten, sollten Sie sehen, dass beide Leibeigenen sich der Verbindung bewusst werden. Sie können es beweisen, indem Sie serf members
ausführen, um die Mitglieder des SWER -Cluster zu sehen:
$ serf members
foo 127.0.0.1:5000 alive
bar 127.0.0.1:5001 alive
...
Zu diesem Zeitpunkt können Sie entweder SWER-Agent zusammenfassen oder erzwingen, und sie werden ihre Mitgliedslisten angemessen aktualisieren. Wenn Sie einen SWER-Agenten zusammenfassen, wird es anmutig gehen, indem Sie den Cluster seiner Absicht zu verlassen. Wenn Sie einen Agenten töten, wird er (normalerweise innerhalb von Sekunden) von einem anderen Mitglied des Clusters erkannt, das den Cluster des Knotenausfalls benachrichtigt.
Die vollständige, umfassende Dokumentation ist auf der SERF -Website angezeigt:
https://github.com/hashicorp/serf/tree/master/docs
Wenn Sie an der Serf selbst arbeiten möchten, müssen Sie zuerst GO installiert (Version 1.10+ ist erforderlich ). Stellen Sie sicher, dass Sie ordnungsgemäß installiert sind, einschließlich der Einrichtung Ihres Gopaths.
Als nächstes klonen Sie dieses Repository in $GOPATH/src/github.com/hashicorp/serf
und geben Sie dann einfach make
. In wenigen Augenblicken haben Sie eine funktionierende serf
:
$ make
...
$ bin/serf
...
Hinweis: make
platziert auch eine Kopie der ausführbaren Datei unter $GOPATH/bin/
Leider ist in erster Linie eine Bibliothek mit einer Befehlszeilenschnittstelle, serf
. Die SERF -Bibliothek ist unabhängig vom Befehlszeilenagenten serf
. Die serf
ist unter cmd/serf
und kann allein installiert werden, indem der Befehl go get -u github.com/hashicorp/serf/cmd/serf
ausgibt. Anwendungen, die die SW -Bibliothek verwenden, müssen nur github.com/hashicorp/serf
enthalten.
Tests können durch make test
durchgeführt werden.
Wenn Sie Änderungen am Code vornehmen, make format
, um den Code automatisch gemäß den GO -Standards zu formatieren.