I distribuerede applikationer er det ofte nødvendigt at ændre konfigurationsegenskaber, såsom opdatering af databaseforbindelsesstrenge og opdatering af cache-adresser. Hvis der ikke er mange applikationer, kan du manuelt ændre dem; når der er mange applikationer, er distribueret konfiguration meget vigtig, denne artikel forklarer Key/Value-lagringsarkitekturen for .net/c# baseret på Consul for at implementere distribueret konfiguration.
Installer Consul
Kort introduktion
Consul er et værktøj til serviceopdagelse og registrering, der er distribueret og meget skalerbart.
Consul omfatter hovedsageligt følgende funktioner:
- Serviceopdagelse: Understøttelse af serviceregistrering og opdagelse for både HTTP- og DNS-protokoller.
- Overvågningstjek: Understøtter flere sundhedstjek.
- Key/Value Storage: Understøtter distribueret KV-datalagring via HTTP API.
- Multi-datacenter understøttelse: Et vilkårligt antal datacentre understøttes.
Installation
Downloadadresse:
Hyperlink-login er synlig.
Denne artikel bruger Windows 10 x64 som testmiljø.
Efter download og udpakning, kør det med cmd-kommandoen, koden er som følger:
dev betyder at køre i udviklingstilstand, og -klientparameteren kan bruges til at angive, hvilken IP klienten må tilgå, for eksempel betyder -klient 127.0.0.1, at den kan bruges, og i udviklingstilstand vil data ikke blive gemt.
(udviklingstilstand, klyngetilstand anbefales til produktionsmiljøer)
Adgang:http://127.0.0.1:8500/ui/dc1/servicesSe nedenfor:
KV-grænseflade
API-dokumentationsadresse:
Hyperlink-login er synlig.
Først bruger jeg en online webside og opretter et nyt nøgle-/værdipar.
Få værdien via GET-anmodningen /v1/kv/:key-stien.
http://127.0.0.1:8500/v1/kv/test
[ { "LockIndex": 0, "Nøgle": "test", "Flag": 0, "Value": "aXRzdnNlLmNvbQ==", "CreateIndex": 194, "ModifyIndex": 194 }
]
- CreateIndex er en intern indeksværdi, der angiver, hvornår posten blev oprettet.
- ModifyIndex er det sidste indeks, der ændrer denne nøgle. Dette indeks svarer til headerværdien, som X-Consul-Index returnerer i svaret, og kan sættes med ? Index forespørgselsparameter bruges til at etablere blokerende forespørgsler. Du kan endda udføre blokeringsforespørgsler mod hele undertræet i KV-butikken: hvad nu hvis? recurse leverer en forespørgsel, og den returnerede værdi X-Consul-Index svarer til den seneste værdi af ModifyIndex i præfikset; ved brug af blokeringsforespørgslen ?index vil det vente, indtil en nøgle i det præfiks er opdateret.
- LockIndex er antallet af gange, nøglen i låsen er blevet opnået med succes. Hvis låsen holdes, vil sessionsnøglen give den session, der ejer låsen.
- Nøglen er bare hele vejen for indgangen.
- Flag er uigennemsigtige, usignerede heltal, som kan tilføjes til hver post. Kunder kan vælge at bruge denne mulighed, men det giver mening for deres anvendelse.
- Value er en base64-kodet datablob.
.NET/C# Nøgle/Værdi læsning og skrivning
Først opretter du et .NET 4.6.1-projekt og bruger nuget til at installere de nødvendige pakker, som følger:
Koden er som følger:
Renderingerne er som følger:
- Nøglenøglen er kasusfølsom
- Duplikat nøgle, værdiværdier vil blive overskrevet
(Slut) |