I distribuerade applikationer är det ofta nödvändigt att ändra konfigurationsegenskaper, såsom att uppdatera databasanslutningssträngar och uppdatera cacheadresser. Om det inte finns många applikationer kan du manuellt ändra dem, när det finns många applikationer är distribuerad konfiguration mycket viktig, denna artikel förklarar Key/Value-lagringsarkitekturen för .net/c# baserad på Consul för att implementera distribuerad konfiguration.
Installera Consul
Kort introduktion
Consul är ett verktyg för tjänsteupptäckt och registrering som är distribuerat och mycket skalbart.
Konsul omfattar huvudsakligen följande funktioner:
- Tjänsteupptäckt: Stöd för tjänsteregistrering och upptäckt för både HTTP- och DNS-protokoll.
- Övervakningskontroller: Stöder flera hälsokontroller.
- Key/Value Storage: Stöder distribuerad KV-datalagring via HTTP API.
- Multidatacenterstöd: Ett valfritt antal datacenter stöds.
Installation
Nedladdningsadress:
Inloggningen med hyperlänken är synlig.
Den här artikeln använder Windows 10 x64 som testmiljö.
Efter nedladdning och uppackning, kör den med kommandot cmd, koden är följande:
dev betyder att köras i utvecklingsläge, och parametern -klient kan användas för att ange vilken IP som får nås av klienten, till exempel betyder -klient 127.0.0.1 att den kan användas, och i utvecklingsläge kommer data inte att lagras.
(utvecklingsläge, klusterläge rekommenderas för produktionsmiljöer)
Tillgång:http://127.0.0.1:8500/ui/dc1/servicesSe nedan:
KV-gränssnitt
API-dokumentationsadress:
Inloggningen med hyperlänken är synlig.
Först använder jag en webbsida och skapar ett nytt nyckel-/värdepar.
Få värdet via GET-förfrågan /v1/kv/:key-vägen.
http://127.0.0.1:8500/v1/kv/test
[ { "LockIndex": 0, "Nyckel": "test", "Flaggor": 0, "Value": "aXRzdnNlLmNvbQ==", "CreateIndex": 194, "ModifieraIndex": 194 }
]
- CreateIndex är ett internt indexvärde som representerar när posten skapades.
- ModifyIndex är det sista indexet som modifierar denna nyckel. Detta index motsvarar huvudvärdet som returneras av X-Consul-Index i svaret, och kan sättas av ? Indexfrågeparametern används för att etablera blockerande frågor. Du kan till och med utföra blockeringsfrågor mot hela delträdet i KV-butiken: tänk om? recurse tillhandahåller en fråga, och det returnerade värdet X-Consul-Index motsvarar det senaste värdet i ModifyIndex i prefixet, med blockningsfrågan ?index väntar man tills någon nyckel i det prefixet uppdateras.
- LockIndex är antalet gånger nyckeln i låset har lyckats förvärvas. Om låset hålls kommer sessionsnyckeln att tillhandahålla sessionen som äger låset.
- Nyckeln är bara hela vägen för posten.
- Flaggor är ogenomskinliga osignerade heltal som kan fästas vid varje post. Kunder kan välja att använda detta alternativ, men det är logiskt för deras applikation.
- Value är en base64-kodad datamassa.
.NET/C# Nyckel/Värde läs och skriv
Först skapar du ett .NET 4.6.1-projekt och använder nuget för att installera nödvändiga paket, enligt följande:
Koden är följande:
Renderingarna är följande:
- Nyckelnyckeln är kasuskänslig
- Dubblettnyckel, värdevärden kommer att skrivas över
(Slut) |