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" як показано нижче:
Значення таке:
Після збереження ми оновлюємо сайт, як показано нижче:
Протестували китайські ієрогліфи без жодних проблем, як показано нижче:
Видно, що значення тесту успішно отримано, що реалізує функцію динамічної конфігурації, а файл конфігурації оновлюється гаряче без перезавантаження сайту. |