.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();
相關文章
相關標籤/搜索