Konsul - Einführung
Consul ist ein Hashicorp-basiertes Tool zum Erkennen und Konfigurieren verschiedener Dienste in Ihrer Infrastruktur. Es basiert und basiert auf Golang. Einer der Hauptgründe für den Aufbau von Consul war die Wartung der in den verteilten Systemen vorhandenen Dienste. Einige der wichtigsten Funktionen, die Consul bietet, sind folgende.
Service Discovery - Mithilfe von DNS oder HTTP können Anwendungen die Dienste, von denen sie abhängig sind, leicht finden.
Health Check Status- Es kann eine beliebige Anzahl von Gesundheitsprüfungen durchführen. Es wird von den Service Discovery-Komponenten verwendet, um den Datenverkehr von fehlerhaften Hosts wegzuleiten.
Key/Value Store - Der hierarchische Schlüssel- / Wertspeicher von Consul kann für eine beliebige Anzahl von Zwecken verwendet werden, einschließlich dynamischer Konfiguration, Kennzeichnung von Funktionen, Koordination, Wahl von Führungskräften usw.
Multi Datacenter Deployment- Consul unterstützt mehrere Rechenzentren. Es wird zum Erstellen zusätzlicher Abstraktionsebenen verwendet, um auf mehrere Regionen zu wachsen.
Web UI - Consul bietet seinen Benutzern eine schöne Weboberfläche, über die alle Funktionen von consul einfach verwendet und verwaltet werden können.
Serviceerkennung
Die Serviceerkennung ist eines der wichtigsten Merkmale von Consul. Es ist definiert als die Erkennung verschiedener Dienste und Netzwerkprotokolle, mit denen ein Dienst gefunden wird. Die Verwendung der Serviceerkennung ist ein Segen für verteilte Systeme. Dies ist eines der Hauptprobleme, mit denen die heutigen Großindustrien bei der Weiterentwicklung verteilter Systeme in ihrer Umgebung konfrontiert sind.
Vergleich mit Etcd und Zookeeper
Wenn wir uns andere Service Discovery-Tools in dieser Domäne ansehen, haben wir zwei beliebte Optionen. Einige Hauptakteure in der Softwareindustrie haben es in der Vergangenheit verwendet. Diese Werkzeuge sindEtcd und Zookeeper.
Betrachten wir die folgende Tabelle zum Vergleichen verschiedener Aspekte jedes Werkzeugs. Wir werden auch verstehen, was jeder von ihnen intern verwendet.
Eigenschaften | Konsul | Etcd | Tierpfleger |
---|---|---|---|
Benutzeroberfläche | Verfügbar |
|
|
RPC | Verfügbar | Verfügbar |
|
Gesundheitskontrolle | HTTP-API | HTTP-API | TCP |
Schlüsselwert | 3 Konsistenzmodi | Gute Konsistenz | Starke Konsistenz |
Token-System | Verfügbar |
|
|
Sprache | Golang | Golang | Java |
Konsul - Mitglieder und Vertreter
Konsulmitglieder können als Liste verschiedener Agenten und Servermodi definiert werden, mit denen ein Konsulcluster bereitgestellt wird. Consul bietet uns eine Befehlszeilenfunktion, mit der wir auf einfache Weise alle mit Consul verbundenen Agenten auflisten können.
Consul Agent ist der Kernprozess von Consul. Der Agent verwaltet Mitgliedschaftsinformationen, registriert Dienste, führt Überprüfungen durch, beantwortet Anfragen usw. Jeder Agent kann in einem von zwei Modi ausgeführt werden:Client oder Server. Diese beiden Modi können entsprechend ihrer Rolle verwendet werden, die bei der Verwendung des Konsuls festgelegt wurde. Der Konsul hilft uns mit den unten aufgeführten Informationen.
Node name - Dies ist der Hostname des Computers.
Datacenter- Das Datencenter, in dem der Agent ausgeführt werden soll. Jeder Knoten muss so konfiguriert sein, dass er an sein Datencenter berichtet.
Server- Zeigt an, ob der Agent im Server- oder Client-Modus ausgeführt wird. Serverknoten nehmen am Konsensquorum teil, speichern den Clusterstatus und bearbeiten Abfragen.
Client Addr- Dies ist die Adresse, die der Agent für Client-Schnittstellen verwendet. Es enthält die Ports für die HTTP-, DNS- und RPC-Schnittstellen.
Cluster Addr- Dies ist die Adresse und der Satz von Ports, die für die Kommunikation zwischen Konsulagenten in einem Cluster verwendet werden. Diese Adresse muss für alle anderen Knoten erreichbar sein.
Im nächsten Kapitel werden wir die Architektur für Consul verstehen.