重新整理 .net core 实践篇————配置中心[四十三]
前言
简单整理一下配置中心。
正文
什么时候需要配置中心?
-
多项目组并行协作
-
运维开发分工职责明确
-
对风险控制有更高诉求
-
对线上配置热更新有诉求
其实上面都是套话,如果觉得项目不方便的时候就需要用配置中心了。
apollo 配置中心系统的能力:
-
权限与审计
-
版本管理
-
热更新
-
原生支持java和.net 客户端
-
项目热度可以,不会出现bug没人修的情况
那么就实验一下。这里就不演示安装了。
然后官方有个demo,我直接用demo演示就好。http://106.54.227.205/ 这个地址。账户密码是:apollo/admin。
那么就开始吧。
第一步直接创建好一个应用:
创建完后就出现了项目的配置管理。
添加一些配置项:
然后需要发布出去:
安装一下:
然后需要配置好服务:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) =>
{
LogManager.UseConsoleLogging(Com.Ctrip.Framework.Apollo.Logging.LogLevel.Trace);
configurationBuilder.AddApollo(configurationBuilder.Build().GetSection("Apollo")).AddDefault(Com.Ctrip.Framework.Apollo.Enums.ConfigFileFormat.Properties);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
看ConfigureAppConfiguration 这部分。
然后上面写道我们要用Apollo配置,那么需要在配置文件中配置一下:
"Apollo": {
"AppId": "asdfghjklaxm",
"Env": "DEV",
"MetaServer": "http://106.54.227.205:8080",
"ConfigServer": ["http://106.54.227.205:8080"]
},
然后测试代码:
[ResponseCache(Duration =6000)]
public IActionResult Pay([FromServices]IConfiguration configuration)
{
return Content("买买买:"+ configuration["china"]);
}
效果:
那么现在在配置中心修改一下china为vary good,修改后要发布。
修改发布后,我们的控制台就收到了通知。
那么再访问一下。
这样就实现了热更新。
结
下一节监测。
因为后续大量是k8s部分,故而会重新整理一下k8s部分,docker 部分整理比较多,不晓得来的及不。