.net core使用Apollo作统一配置管理

       作开发这么多年,常常因配置的问题引起生产环境的bug。有些年久的项目,几百个密密麻麻的配置项,常常容易搞混,有时好几个项目有好多一样的配置项,配置工做也不厌其烦。所幸,携程开源了新一代配置中心 - Apollo项目,最近在项目中使用了一段时间,感受确实方便很多。java

       首先本地搭建Apollo,请参照官网资料https://github.com/ctripcorp/apollo/wiki/Quick-Start。git

       进入Apollo的管理UI,建立项目:程序员

  

       

       建立项目后,就能够在项目中添加Key、value了:github

  

        添加key后,须要发布才能生效。json

        在.net core项目中添加Com.Ctrip.Framework.Apollo.Configuration的nuget包(难道是java程序员写的?),修改Program.cs文件及appsettings.json文件,appsettings.json文件的AppId对应上文中的应用ID,MetaServer的地址Apollo的Euraka的Server地址:app

  

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .ConfigureAppConfiguration((hostingContext, builder) =>
                {
                    builder
                    .AddApollo(builder.Build().GetSection("apollo"))
                    .AddDefault();
                })
                .UseStartup<Startup>()
                .Build();
{
  "apollo": {
    "AppId": "SampleApp",
    "MetaServer": "http://192.168.2.168:8080"
  }
}

 


        这样就能够在项目中读取apollo里的配置项了,是否是很简单。ui

        若是有一些公共配置项须要被几个项目引用,该怎么办呢?NameSpace闪亮登场!传送门:Apollo核心概念之“Namespace”spa

  建立pulic类型的NameSpace,NameSpace的配置项对各项目均可见,惟一须要的操做是在个项目中也须要对NameSpace中的配置项进行发布,这个时候须要再改一下Program.cs的代码:.net

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .ConfigureAppConfiguration((hostingContext, builder) =>
                {
                    builder
                    .AddApollo(builder.Build().GetSection("apollo"))
                    .AddDefault()
                    .AddNamespace("Common");//Apollo中NameSpace的名称
                })
                .UseStartup<Startup>()
                .Build();
相关文章
相关标签/搜索