.net6之apollo

概念

能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景

项目概览

引用外部包

ApolloOptions(参数)

    public class ApolloOptions 
    {

        public string AppId { get; set; }
       
        public IEnumerable<string>? Namespaces { get; set; }

        /// <summary>Default Dev</summary>
        public Env Env { get; set; } = Env.Dev;


        public  string? MetaServer { get; set; }
    }

ApolloConfigExtensions

   /// <summary>
    /// apollo配置扩展类
    /// </summary>
    public static class ApolloConfigExtensions
    {
        public static IConfigurationBuilder AddApolloConfiguration(this IConfigurationBuilder builder, Action<Options.ApolloOptions> setup0ptions)
        {
            LogManager.UseConsoleLogging(LogLevel.Info);
            var options = new Options.ApolloOptions();
            setup0ptions(options);

            IApolloConfigurationBuilder apolloConfigurationBuilder= builder.AddApollo( new Com.Ctrip.Framework.Apollo.ApolloOptions
            {
                AppId = options.AppId,
                MetaServer = options.MetaServer,
               // Namespaces=options.Namespaces
            }).AddDefault();
            if (options.Namespaces != null && options.Namespaces.Count() > 0)
            {
                foreach (var item in options.Namespaces)
                {
                    apolloConfigurationBuilder.AddNamespace(item);
                }
            }
            return builder;
        }
    }

打包传送门 https://www.cnblogs.com/inclme/p/16053978.html

.net6中使用

引用上述nuget包

添加服务

var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddApolloConfiguration(op =>
{
    builder.Configuration.Bind("BPA:Apollo", op);
  
});

参数参考

    "Apollo": {
      "AppId": "dev1_common",
      "Namespaces": [ "DEV.Config" ],
      "MetaServer": "http://10.2.1.21:28080"
    },

获取

apollo配置

posted @ 2025-01-08 13:08  小小青年  阅读(19)  评论(0)    收藏  举报