W aplikacjach rozproszonych często konieczne jest modyfikowanie właściwości konfiguracji, takich jak aktualizacja ciągów połączeń z bazą danych oraz aktualizacja adresów pamięci podręcznej. Jeśli aplikacji jest niewiele, możesz je ręcznie modyfikować, a gdy jest ich wiele, konfiguracja rozproszona jest bardzo ważna, a ten artykuł wyjaśnia architekturę przechowywania klucz/wartość w .net/c# opartej na Consul do implementacji konfiguracji rozproszonej.
Instalacja Consul
Krótkie wprowadzenie
Consul to narzędzie do wyszukiwania i rejestracji usług, które jest rozproszone i wysoce skalowalne.
Konsul obejmuje głównie następujące cechy:
- Wykrywanie usług: Wsparcie dla rejestracji i wykrywania usług zarówno dla protokołów HTTP, jak i DNS.
- Kontrole monitorujące: Wspiera wielokrotne badania zdrowotne.
- Przechowywanie klucz/wartość: Obsługuje rozproszone przechowywanie danych KV za pośrednictwem API HTTP.
- Wsparcie dla wielu centrów danych: Obsługiwana jest dowolna liczba centrów danych.
Instalacja
Adres do pobrania:
Logowanie do linku jest widoczne.
W tym artykule używa Windows 10 x64 jako środowiska testowego.
Po pobraniu i rozpakowaniu, uruchom go za pomocą polecenia cmd, a kod jest następujący:
dev oznacza działanie w trybie deweloperskim, a parametr -client może być użyty do określenia, do jakiego adresu IP klient może mieć dostęp, na przykład -client 127.0.0.1 oznacza, że można go używać, a w trybie deweloperskim dane nie będą przechowywane.
(tryb deweloperski, tryb klastra jest zalecany dla środowisk produkcyjnych)
Dostęp:http://127.0.0.1:8500/ui/dc1/servicesZobacz poniżej:
Interfejs KV
Adres dokumentacji API:
Logowanie do linku jest widoczne.
Najpierw korzystam ze strony internetowej i tworzę nową parę klucz/wartość.
Uzyskaj wartość za pomocą ścieżki GET /v1/kv/:key.
http://127.0.0.1:8500/v1/kv/test
[ { "LockIndex": 0, "Key": "test", "Flagi": 0, "Value": "aXRzdnNlLmNvbQ==", "CreateIndex": 194, "ModifyIndex": 194 }
]
- CreateIndex to wewnętrzna wartość indeksu reprezentująca moment utworzenia wpisu.
- ModifyIndex jest ostatnim indeksem, który modyfikuje ten klucz. Ten indeks odpowiada wartości nagłówkowej zwracanej przez X-Consul-Index w odpowiedzi i można ją ustawić jako ? Parametr zapytania indeksowego służy do ustalania zapytań blokujących. Możesz nawet wykonywać zapytania blokujące na całym poddrzewie sklepu KV: co jeśli? recurencja dostarcza zapytanie, a zwrócona wartość X-Consul-Index odpowiada najnowszej wartości ModifyIndex w prefiksie; przy użyciu blokującego zapytania ?index czeka, aż którykolwiek klucz w tym prefiksie zostanie zaktualizowany.
- LockIndex to liczba razy, gdy klucz w zamku został pomyślnie zdobyty. Jeśli zamek jest utrzymany, klucz Session dostarcza sesję, która jest właścicielem zamka.
- Kluczem jest po prostu pełna ścieżka wejścia.
- Flagi to nieprzezroczyste, nieznakomitowane liczby całkowite, które można dołączyć do każdego wpisu. Klienci mogą wybrać tę opcję, ale ma ona sens w ich zastosowaniu.
- Value to zakodowany w base64 blob danych.
.NET/C# Odczyt i zapis Klucz/Wartość
Najpierw stwórz projekt .NET 4.6.1 i użyj nuget do instalacji niezbędnych pakietów, w następujący sposób:
Kod jest następujący:
Przedstawienia przedstawiają się następująco:
- Klucz kluczowy jest rozróżniający wielka litera
- Wartości zduplikowanego klucza zostaną nadpisane
(Koniec) |