免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
【架構(gòu)篇】ASP.NET Core 基于 Consul 動(dòng)態(tài)配置熱更新

背景

通常,.Net 應(yīng)用程序中的配置存儲(chǔ)在配置文件中,例如 App.config、Web.config 或 appsettings.json。從 ASP.Net Core 開始,出現(xiàn)了一個(gè)新的可擴(kuò)展配置框架,它允許將配置存儲(chǔ)在配置文件之外,并從命令行、環(huán)境變量等等中檢索它們。

在傳統(tǒng)項(xiàng)目中,修改配置文件,需要登錄生產(chǎn)環(huán)境進(jìn)行修改,當(dāng)項(xiàng)目多的時(shí)候,不便于維護(hù)和管理。

因此我們通過(guò)Consul在線實(shí)時(shí)配置,則達(dá)到了只更改配置不重啟服務(wù)即可實(shí)時(shí)響應(yīng)的目的。實(shí)現(xiàn)思路基于Consul的Key/value ,多個(gè)Consul 節(jié)點(diǎn)之間可以自動(dòng)同步配置,我們的程序中就是實(shí)現(xiàn)ConfigurationProvider,監(jiān)聽Consul變化。

Consul 配置

關(guān)于 下載安裝,可以參考:

【架構(gòu)篇】.net/c# 基于 Consul 實(shí)現(xiàn)分布式配置之Key/Value存儲(chǔ)

https://down.itsvse.com/k/zdxr0g.html

ASP.NET Core 配置

首先,安裝nuget包,命令如下:

Install-Package ConsulInstall-Package Winton.Extensions.Configuration.Consul

修改 Program.cs 文件,代碼如下:

using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Hosting;using System;using Winton.Extensions.Configuration.Consul;namespace WebApplication1{    public class Program    {        public static void Main(string[] args)        {            CreateHostBuilder(args).Build().Run();        }        public static IHostBuilder CreateHostBuilder(string[] args) =>            Host.CreateDefaultBuilder(args)                .ConfigureAppConfiguration((hostingContext, config) =>                {                    var env = hostingContext.HostingEnvironment;                    hostingContext.Configuration = config.Build();                    string consul_url = hostingContext.Configuration["Consul_Url"];                    Console.WriteLine(consul_url);                    Console.WriteLine(env.ApplicationName);                    Console.WriteLine(env.EnvironmentName);                    config.AddConsul(                                $"{env.ApplicationName}/appsettings.{env.EnvironmentName}.json",                                options =>                                {                                    options.Optional = true;                                    options.ReloadOnChange = true;                                    options.OnLoadException = exceptionContext => { exceptionContext.Ignore = true; };                                    options.ConsulConfigurationOptions = cco => { cco.Address = new Uri(consul_url); };                                }                                );                    hostingContext.Configuration = config.Build();                })                .ConfigureWebHostDefaults(webBuilder =>                {                    webBuilder.UseStartup<Startup>();                });    }}

關(guān)于 Configuration 更多配置,可以參考:

https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1

配置 Consul 服務(wù)中心地址,修改 appsettings.json 文件,配置如下:

{  "Logging": {    "LogLevel": {      "Default": "Information",      "Microsoft": "Warning",      "Microsoft.Hosting.Lifetime": "Information"    }  },  "AllowedHosts": "*",  "Consul_Url": "http://127.0.0.1:8500"}

控制器代碼如下:

using Microsoft.AspNetCore.Mvc;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.Logging;namespace WebApplication1.Controllers{    public class HomeController : Controller    {        private readonly ILogger<HomeController> _logger;        public readonly IConfiguration _configuration;        public HomeController(ILogger<HomeController> logger, IConfiguration configuration)        {            _logger = logger;            _configuration = configuration;        }        public IActionResult Index()        {            return Ok("獲取test值:" + _configuration["test"]);        }    }}

啟動(dòng)項(xiàng)目,如下圖:

由于,我們 Consul 并沒(méi)有在配置 test 的值,所以獲取為空。

打開 http://127.0.0.1:8500/ui/dc1/kv 配置項(xiàng)目所需要的文件。

項(xiàng)目讀取的配置文件地址為:

“/WebApplication1/appsettings.Development.json”

因此,我們需要新建“WebApplication1”文件夾和“appsettings.Development.json”文件,如下圖:

Value 如下:

{	"test": "itsvse"}

保存后,我們重新刷新網(wǎng)站,如下圖:

測(cè)試中文字符,也沒(méi)有任何問(wèn)題,如下圖:

可以看到,成功獲取到了test的值,這就實(shí)現(xiàn)了動(dòng)態(tài)配置功能,無(wú)需重新網(wǎng)站,就實(shí)現(xiàn)了配置文件的熱更新。

原文鏈接:https://down.itsvse.com/k/of9b7k.html

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ASP.NET Core開發(fā)-讀取配置文件Configuration
.Net之配置文件自定義
netcore 非注入全局獲取配置文件
ASP.NET2.0里的web.config配置接口API(轉(zhuǎn))
C#獲取web.config配置文件內(nèi)容
改變應(yīng)用程序配置文件的文件名
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服