.net core使用Apollo做統一配置管理


       做開發這么多年,經常因配置的問題引發生產環境的bug。有些年久的項目,幾百個密密麻麻的配置項,經常容易搞混,有時好幾個項目有好多同樣的配置項,配置工作也不厭其煩。所幸,攜程開源了新一代配置中心 - Apollo項目,最近在項目中使用了一段時間,感覺確實方便不少。

       首先本地搭建Apollo,請參照官網資料https://github.com/ctripcorp/apollo/wiki/Quick-Start。

       進入Apollo的管理UI,創建項目:

  

       

       創建項目后,就可以在項目中添加Key、value了:

  

        添加key后,需要發布才能生效。

        在.net core項目中添加Com.Ctrip.Framework.Apollo.Configuration的nuget包(難道是java程序員寫的?),修改Program.cs文件及appsettings.json文件,appsettings.json文件的AppId對應上文中的應用ID,MetaServer的地址Apollo的Euraka的Server地址:

  

        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里的配置項了,是不是很簡單。

        如果有一些公共配置項需要被幾個項目引用,該怎么辦呢?NameSpace閃亮登場!傳送門:Apollo核心概念之“Namespace”

  創建pulic類型的NameSpace,NameSpace的配置項對各項目都可見,唯一需要的操作是在個項目中也需要對NameSpace中的配置項進行發布,這個時候需要再改一下Program.cs的代碼:

        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();

 

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM