ASP.NET Core implementerer mikroservices, skal du tage fat på problemet med konfigurationscentret. Uanset om det er en mikroservice eller ej, er det meget besværligt at ændre konfigurationsfilen én efter én med flere noder, og i dag vil jeg dele en letvægts konfigurationscenterløsning baseret på Consul. Hot-opdateringer af profiler opnås uden at gensitere.
baggrund
Typisk gemmes konfigurationer i .NET-applikationer i konfigurationsfiler, såsom App.config, Web.config eller appsettings.json. Fra ASP.Net Core opstod et nyt udvidelsesbart konfigurationsframework, som gjorde det muligt at gemme konfigurationer uden for konfigurationsfilerne og hente fra kommandolinjen, miljøvariabler og mere.
I traditionelle projekter kræver ændring af konfigurationsfiler, at man logger ind i produktionsmiljøet for at ændre dem, hvilket ikke er praktisk for vedligeholdelse og administration, når der er mange projekter.
Derfor bruger vi Consul til at konfigurere online i realtid, hvilket opnår målet om at svare i realtid ved kun at ændre konfigurationen uden at genstarte tjenesten. Implementeringsideen er baseret på nøglen/værdien af Consul, og flere Consul-noder kan automatisk synkroniseres og konfigureres, og vores program er at implementere ConfigurationProvider og lytte efter Consul-ændringer.
Konsulkonfiguration
For download og installation kan du henvise til:
ASP.NET Kernekonfiguration
Først installerer du nuget-pakken med følgende kommando:
Ændr Program.cs-filen med følgende kode:
For mere information om konfiguration, se venligst:
Hyperlink-login er synlig.
Konfigurér Consuls servicecenteradresse og ændr appsettings.json-filen som følger:
Controllerkoden er som følger:
Start projektet som vist nedenfor:
Da vi hos Consul ikke konfigurerer værdien af testen, er hentningen tom.
Åbn denHyperlink-login er synlig.Konfigurér de filer, der kræves til projektet.
Profiladressen, som projektet læser, er:
"/WebApplication1/appsettings. Development.json" Derfor skal vi oprette en ny "WebApplication1"-mappe og "appsettings". Development.json" fil som vist nedenfor:
Værdien er som følger:
Efter gemning opdaterer vi hjemmesiden som vist nedenfor:
Testede kinesiske tegn uden problemer, som vist nedenfor:
Det kan ses, at værdien af testen opnås med succes, hvilket realiserer den dynamiske konfigurationsfunktion, og konfigurationsfilen hot-opdateres uden at genstarte hjemmesiden. |