ASP.NET Core реализует микросервисы, необходимо решить проблему конфигурационного центра. Независимо от того, микросервис это или нет, менять конфигурационный файл по одному с большим количеством узлов очень сложно, и сегодня я поделюсь лёгким решением для центра конфигурации на базе Consul. Горячие обновления профилей осуществляются без повторного размещения.
фон
Обычно конфигурации в .NET-приложениях хранятся в конфигурационных файлах, таких как App.config, Web.config или appsettings.json. Начиная с ASP.Net Core, появилась новая расширяемая конфигурационная структура, позволяющая хранить конфигурации вне файлов конфигурации и получать их из командной строки, переменных среды и других параметров.
В традиционных проектах изменение конфигурационных файлов требует входа в производственную среду для их изменений, что неудобно для обслуживания и управления при большом количестве проектов.
Поэтому мы используем Consul для онлайн-настройки в реальном времени, что достигает цели реагирования в реальном времени, меняя только конфигурацию без перезапуска сервиса. Идея реализации основана на ключе/значении Consul, и несколько узлов Consul можно автоматически синхронизировать и настраивать, а наша программа — реализовать ConfigurationProvider и прослушивать изменения Consul.
Конфигурация консула
Для скачивания и установки вы можете обратиться к следующему:
ASP.NET Конфигурация ядра
Сначала установите пакет nuget со следующей командой:
Измените Program.cs файл следующим кодом:
Для получения дополнительной информации о конфигурации, пожалуйста, обратитесь к следующему разделу:
Вход по гиперссылке виден.
Настройте адрес сервисного центра Consul и измените appsettings.json файл следующим образом:
Код контроллера следующий:
Начните проект, как показано ниже:
Поскольку мы в Consul не настраиваем значение теста, сборка пуста.
ОткройтеВход по гиперссылке виден.Настройте нужные файлы для проекта.
Адрес профиля, который читает проект:
"/WebApplication1/appsettings. Development.json» Поэтому нам нужно создать новую папку «WebApplication1» и «appsettings». Development.json» файл, как показано ниже:
Значение следующее:
После сохранения мы обновляем сайт, как показано ниже:
Протестировали китайские иероглифы без проблем, как показано ниже:
Видно, что значение теста успешно получено, что реализует функцию динамической конфигурации, и файл конфигурации обновляется без перезапуска сайта. |