简单整理一下配置中心。
正文什么时候需要配置中心?
多项目组并行协作
运维开发分工职责明确
对风险控制有更高诉求
对线上配置热更新有诉求
其实上面都是套话,如果觉得项目不方便的时候就需要用配置中心了。
apollo 配置中心系统的能力:
权限与审计
版本管理
热更新
原生支持java和.net 客户端
项目热度可以,不会出现bug没人修的情况
那么就实验一下。这里就不演示安装了。
然后官方有个demo,我直接用demo演示就好。 这个地址。账户密码是: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 部分整理比较多,不晓得来的及不。