ASP.NET Core implementuje mikroserwisy, musisz rozwiązać problem centrum konfiguracyjnego. Niezależnie od tego, czy to mikroserwis, czy nie, bardzo uciążliwe jest zmienianie pliku konfiguracyjnego jeden po drugim przy większej liczbie węzłów, a dziś podzielę się lekkim rozwiązaniem centrum konfiguracyjnego opartym na Consul. Gorące aktualizacje profili są osiągane bez konieczności ponownego tworzenia stron.
tło
Zazwyczaj konfiguracje w aplikacjach .NET są przechowywane w plikach konfiguracyjnych, takich jak App.config, Web.config lub appsettings.json. Począwszy od ASP.Net Core, pojawił się nowy, rozszerzalny framework konfiguracyjny, który pozwalał na przechowywanie konfiguracji poza plikami konfiguracyjnymi i pobieranie z linii poleceń, zmiennych środowiskowych i innych.
W tradycyjnych projektach modyfikacja plików konfiguracyjnych wymaga zalogowania się do środowiska produkcyjnego w celu modyfikacji, co nie jest wygodne dla utrzymania i zarządzania, gdy projektów jest wiele.
Dlatego używamy Consul do konfiguracji online w czasie rzeczywistym, co pozwala na reagowanie w czasie rzeczywistym, zmieniając jedynie konfigurację bez restartu usługi. Pomysł implementacji opiera się na kluczu/wartości Consul, a wiele węzłów Consul może być automatycznie synchronizowanych i konfigurowanych, a nasz program polega na implementacji ConfigurationProvider i nasłuchiwaniu zmian Consul.
Konfiguracja konsula
Do pobrania i instalacji możesz odwołać się z:
ASP.NET Konfiguracja rdzenia
Najpierw zainstaluj pakiet nuget za pomocą następującego polecenia:
Zmodyfikuj plik Program.cs za pomocą następującego kodu:
Aby uzyskać więcej informacji o Configuration, prosimy odnaleźć się na:
Logowanie do linku jest widoczne.
Skonfiguruj adres centrum serwisowego Consul i zmodyfikuj plik appsettings.json w następujący sposób:
Kod kontrolera jest następujący:
Rozpocznij projekt zgodnie z poniższą ilustracją:
Ponieważ my w Consul nie konfigurujemy wartości testu, pobieranie jest puste.
Otwórz toLogowanie do linku jest widoczne.Skonfiguruj pliki potrzebne do projektu.
Adres profilu odczytany przez projekt to:
"/WebApplication1/appsettings. Development.json" Dlatego musimy utworzyć nowy folder "WebApplication1" oraz "appsettings". Development.json" jak pokazano poniżej:
Wartość jest następująca:
Po zapisaniu odświeżamy stronę internetową, jak pokazano poniżej:
Testowałem znaki chińskie bez żadnych problemów, jak pokazano poniżej:
Widać, że wartość testu została pomyślnie uzyskana, co realizuje dynamiczną funkcję konfiguracji, a plik konfiguracyjny jest aktualizowany na gorąco bez restartu strony internetowej. |