ASP.NET Core implementerer mikrotjenester, må du ta tak i problemet med konfigurasjonssenteret. Enten det er en mikrotjeneste eller ikke, er det veldig vanskelig å endre konfigurasjonsfilen én etter én med flere noder, og i dag vil jeg dele en lettvekts konfigurasjonssenterløsning basert på Consul. Hete oppdateringer av profiler gjøres uten å resitere.
bakgrunn
Vanligvis lagres konfigurasjoner i .NET-applikasjoner i konfigurasjonsfiler, som App.config, Web.config eller appsettings.json. Fra og med ASP.Net Core dukket et nytt utvidbart konfigurasjonsrammeverk opp som tillot lagring av konfigurasjoner utenfor konfigurasjonsfiler og hentet fra kommandolinjen, miljøvariabler og mer.
I tradisjonelle prosjekter krever modifisering av konfigurasjonsfiler at man logger inn i produksjonsmiljøet for endring, noe som ikke er praktisk for vedlikehold og administrasjon når det er mange prosjekter.
Derfor bruker vi Consul til å konfigurere online i sanntid, noe som oppnår målet om å svare i sanntid ved kun å endre konfigurasjonen uten å starte tjenesten på nytt. Implementeringsideen er basert på nøkkelen/verdien til Consul, og flere Consul-noder kan automatisk synkroniseres og konfigureres, og vårt program er å implementere ConfigurationProvider og lytte etter endringer i Consul.
Konsulkonfigurasjon
For nedlasting og installasjon kan du referere til:
ASP.NET Kjernekonfigurasjon
Først, installer nuget-pakken med følgende kommando:
Endre Program.cs-filen med følgende kode:
For mer informasjon om konfigurasjon, vennligst se:
Innloggingen med hyperkoblingen er synlig.
Konfigurer adressen til Consuls servicesenter og endre appsettings.json-filen som følger:
Kontrollerkoden er som følger:
Start prosjektet som vist nedenfor:
Siden vi hos Consul ikke konfigurerer verdien av testen, er hentingen tom.
Åpne denInnloggingen med hyperkoblingen er synlig.Konfigurer filene som kreves for prosjektet.
Profiladressen som leses av prosjektet er:
"/WebApplication1/appsettings. Development.json" Derfor må vi opprette en ny "WebApplication1"-mappe og "appsettings". Development.json" fil som vist nedenfor:
Verdien er som følger:
Etter lagring oppdaterer vi nettsiden som vist nedenfor:
Testet kinesiske tegn uten problemer, som vist nedenfor:
Det kan sees at verdien av testen er vellykket oppnådd, noe som realiserer den dynamiske konfigurasjonsfunksjonen, og konfigurasjonsfilen varmeoppdateres uten å starte nettsiden på nytt. |