ASP.NET Core microservices implementeert, moet je het probleem van het configuratiecentrum aanpakken. Of het nu een microservice is of niet, het is erg lastig om het configuratiebestand één voor één te wijzigen met meer nodes, en vandaag deel ik een lichtgewicht configuratiecentrumoplossing gebaseerd op Consul. Hot updates van profielen worden uitgevoerd zonder opnieuw te plaatsen.
achtergrond
Typisch worden configuraties in .NET-applicaties opgeslagen in configuratiebestanden, zoals App.config, Web.config of appsettings.json. Vanaf ASP.Net Core ontstond een nieuw uitbreidbaar configuratieframework waarmee configuraties buiten configuratiebestanden konden worden opgeslagen en opgehaald via de commandoregel, omgevingsvariabelen en meer.
In traditionele projecten vereist het wijzigen van configuratiebestanden inloggen op de productieomgeving voor wijziging, wat niet handig is voor onderhoud en beheer bij veel projecten.
Daarom gebruiken we Consul om online in realtime te configureren, wat het doel bereikt om in realtime te reageren door alleen de configuratie te wijzigen zonder de dienst opnieuw op te starten. Het implementatieidee is gebaseerd op de sleutel/waarde van Consul, en meerdere Consul-knooppunten kunnen automatisch worden gesynchroniseerd en geconfigureerd, en ons programma is om ConfigurationProvider te implementeren en te luisteren naar Consul-wijzigingen.
Consulconfiguratie
Voor download en installatie kunt u verwijzen naar:
ASP.NET Kernconfiguratie
Installeer eerst het nuget-pakket met het volgende commando:
Wijzig het Program.cs-bestand met de volgende code:
Voor meer informatie over Configuratie, zie alstublieft:
De hyperlink-login is zichtbaar.
Configureer het Consul servicecentrumadres en wijzig het appsettings.json-bestand als volgt:
De controllercode is als volgt:
Begin het project zoals hieronder getoond:
Omdat wij bij Consul de waarde van de test niet configureren, is de fetch leeg.
Maak het openDe hyperlink-login is zichtbaar.Configureer de bestanden die nodig zijn voor het project.
Het profieladres dat door het project wordt gelezen is:
"/WebApplication1/appsettings. Development.json" Daarom moeten we een nieuwe "WebApplication1"-map en "appsettings" aanmaken. Development.json" bestand zoals hieronder getoond:
De waarde is als volgt:
Na het opslaan verversen we de website zoals hieronder getoond:
Chinese karakters zonder problemen getest, zoals hieronder getoond:
Het is te zien dat de waarde van de test succesvol wordt verkregen, wat de dynamische configuratiefunctie realiseert, en het configuratiebestand wordt geüpdatet zonder de website opnieuw op te starten. |