Bei der Entwicklung von Internetprojekten ist es notwendig, mit verschiedenen Diensten zu interagieren, und Nutzer beziehen Daten vom Server; die hohe Verfügbarkeit von Service-Schnittstellen ist besonders wichtig, insbesondere im E-Commerce- und Zahlungssystem, wo die hohe Verfügbarkeit auch misst, ob das System robust ist. Im Fall von Clustern sind viele Dienste auch schwer zu warten.
Konsulüberprüfung
Consul ist ein Open-Source-Tool, das in der Go-Sprache entwickelt wurde und von HashiCorp eingeführt wurde und zur Realisierung von Service-Discovery und -konfiguration verteilter Systeme verwendet wird, mit integriertem Service-Registrierungs- und Entdeckungsframework, Implementierung von Verteilungskonsistenzprotokollen, Gesundheitsprüfung, Schlüssel-/Wertspeicherung und Multi-Datacenter-Lösungen, die relativ einfach zu bedienen sind.
Entdeckung des Konsulatsdienstes
Wie man Consul Service Discovery verwendet:
- Führen Sie auf jedem Computer einen Konsul-Agenten im Client-Modus aus, der nur für den effizienten Austausch der neuesten Registrierungsinformationen mit dem Konsul-Cluster verantwortlich ist (ohne an der Führungswahl teilzunehmen).
- Der Dienstdienst auf jedem Computer registriert den Dienstnamen und die URL des Dienstes beim örtlichen Konsulagent
- Wenn ein auf Computer1 installiertes Programm ServiceB aufrufen muss, erhält das Programm ServiceA direkt die Zugriffsadresse von ServiceB vom lokalen Konsulagent über den Servicenamen und stellt dann direkt eine Anfrage an die URL von ServiceB.
Der Code lautet wie folgt:
In der Startup-Klasse rufen Sie wie folgt auf:
Gesundheitsuntersuchung
Die Gesundheitskontroll-Schnittstelle muss nur einen 200-Statuscode an Consul zurückgeben, und der Code lautet wie folgt:
Starte das Projekt, melde dich für den Service an
Der Regler kann eine Testmethode wie folgt definieren:
Gehen wir zum bin-Verzeichnis des Projekts und starten es über die Kommandozeile, der Code ist wie folgt:
Sehen Sie sich den Link über Ihren Browser an:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
Die JSON-Daten sind wie folgt:
[ { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "DESKTOP-EB7B69D", "Adresse": "127.0.0.1", "Rechenzentrum": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "Konsul-Netzwerk-Segment": "" }, "ServiceKind": "", "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "Test", "Itsvse" ], "ServiceAdresse": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Warnung": 1 }, "ServiceMeta": {}, "ServicePort": 8083, "ServiceEnableTagOverride": falsch, "ServiceProxy": { "MeshGateway": {}, "Enthüllung": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "ModifyIndex": 1317 }, { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Node": "DESKTOP-EB7B69D", "Adresse": "127.0.0.1", "Rechenzentrum": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "WAN": "127.0.0.1" }, "NodeMeta": { "Konsul-Netzwerk-Segment": "" }, "ServiceKind": "", "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "Test", "Itsvse" ], "ServiceAdresse": "127.0.0.1", "ServiceWeights": { "Passing": 1, "Warnung": 1 }, "ServiceMeta": {}, "ServicePort": 8082, "ServiceEnableTagOverride": falsch, "ServiceProxy": { "MeshGateway": {}, "Enthüllung": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "ModifyIndex": 1314 }
]
Konsul-Serviceruf
Erstellen Sie ein neues .NET Core-Konsolenprojekt mit folgendem Code:
Ich rufe zufällig den registrierten Test.itsvse-Dienst an und das Ergebnis ist wie folgt:
Abschließend, Quellcode-Download:
Touristen, wenn ihr den versteckten Inhalt dieses Beitrags sehen wollt, bitte Antwort |