In verteilten Anwendungen ist es oft notwendig, Konfigurationseigenschaften zu ändern, wie das Aktualisieren von Datenbank-Verbindungsstrings und das Aktualisieren von Cache-Adressen. Wenn es nicht viele Anwendungen gibt, kann man sie manuell modifizieren; sobald es viele Anwendungen gibt, ist die verteilte Konfiguration sehr wichtig. Dieser Artikel erklärt die Key/Value-Speicherarchitektur von .net/c# basierend auf Consul, um verteilte Konfigurationen zu implementieren.
Konsul installieren
Kurze Einführung
Consul ist ein Tool zur Service-Entdeckung und -registrierung, das verteilt und hoch skalierbar ist.
Konsul umfasst hauptsächlich folgende Merkmale:
- Service-Discovery: Unterstützung für Service-Registrierung und -Discovery sowohl für HTTP- als auch für DNS-Protokolle.
- Überwachungsprüfungen: Unterstützt mehrere Gesundheitschecks.
- Key/Value Storage: Unterstützt verteilte KV-Datenspeicherung über die HTTP-API.
- Unterstützung für mehrere Rechenzentren: Beliebig viele Rechenzentren werden unterstützt.
Installation
Adresse herunterladen:
Der Hyperlink-Login ist sichtbar.
Dieser Artikel verwendet Windows 10 x64 als Testumgebung.
Nach dem Herunterladen und Entpacken wird es mit dem cmd-Befehl ausgeführt und der Code lautet wie folgt:
dev bedeutet, im Entwicklungsmodus zu laufen, und der Parameter -Client kann verwendet werden, um anzugeben, auf welche IP der Client zugreifen darf, zum Beispiel bedeutet -Client 127.0.0.1, dass er verwendet werden kann, und im Entwicklungsmodus werden die Daten nicht gespeichert.
(Entwicklungsmodus, Cluster-Modus wird für Produktionsumgebungen empfohlen)
Zugang:http://127.0.0.1:8500/ui/dc1/servicesSiehe unten:
KV-Schnittstelle
API-Dokumentationsadresse:
Der Hyperlink-Login ist sichtbar.
Zuerst nutze ich eine Online-Webseite und erstelle ein neues Schlüssel-/Wert-Paar.
Erhalten Sie den Wert über den GET-Anfragepfad /v1/kv/:key.
http://127.0.0.1:8500/v1/kv/test
[ { "LockIndex": 0, "Schlüssel": "Test", "Flaggen": 0, "Value": "aXRzdnNlLmNvbQ==", "CreateIndex": 194, "ModifyIndex": 194 }
]
- CreateIndex ist ein interner Indexwert, der angibt, wann der Eintrag erstellt wurde.
- ModifyIndex ist der letzte Index, der diesen Schlüssel ändert. Dieser Index entspricht dem von X-Consul-Index in der Antwort zurückgegebenen Kopfwert und kann durch ? gesetzt werden. Der Index Query-Parameter wird verwendet, um Blockanfragen zu etablieren. Man kann sogar Blockierungsabfragen gegen den gesamten Unterbaum des KV-Stores durchführen: Was wäre wenn? recurse stellt eine Abfrage bereit, und der zurückgegebene Wert X-Consul-Index entspricht dem neuesten Wert von ModifyIndex im Präfix; mit der blockierenden Abfrage ?index wird gewartet, bis ein Schlüssel in diesem Präfix aktualisiert wurde.
- LockIndex ist die Anzahl der Male, in denen der Schlüssel im Schloss erfolgreich erworben wurde. Wenn das Schloss gehalten wird, liefert der Session-Schlüssel die Sitzung, die das Schloss besitzt.
- Der Schlüssel ist einfach der vollständige Pfad des Eintrags.
- Flags sind undurchsichtige, unsignierte Ganzzahlen, die jedem Eintrag angehängt werden können. Kunden können diese Option wählen, aber sie ist für ihre Anwendung sinnvoll.
- Value ist ein base64-codierter Datenblob.
.NET/C# Schlüssel/Wert lesen und schreiben
Erstellen Sie zunächst ein .NET 4.6.1-Projekt und verwenden Sie nuget, um die notwendigen Pakete wie folgt zu installieren:
Der Code lautet wie folgt:
Die Darstellungen sind wie folgt:
- Der Schlüsselschlüssel ist groß- und kleinschreibungsabhängig
- Duplikater Schlüssel, Wertwerte werden überschrieben
(Ende) |