.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配置