Consul-配置中心

Consul除了服务注册发现,还可以做配置中心。配置中心就是把各个业务服务器的配置文件统一放到配置中心中,这样就可以实现修改配置中心的内容,业务服务器自动同步

快速开始

1、启动Consul

consul.exe agent -dev	

2、添加配置appsettings.json

3、创建测试项目Consul.Service1
4、添加Nuget包

<PackageReference Include="Winton.Extensions.Configuration.Consul" Version="3.2.0" />

5、添加Consul配置源

//配置相关
builder.Host.ConfigureAppConfiguration(config => {
    config.AddConsul("appsettings.json", options =>
    {
        options.ConsulConfigurationOptions = cco => { cco.Address = new Uri("http://127.0.0.1:8500"); }; //consul地址
        options.Optional = true; 
        options.ReloadOnChange = true; // 热加载
        options.OnLoadException = exceptionContext => { exceptionContext.Ignore = true; }; //忽略异常
    });
});

6、项目中读取配置

[HttpGet]
public string Get([FromServices]IConfiguration configuration)
{
    return $"userName:{configuration["UserName"]},password:{configuration["Password"]}";
}

输出:userName:fan,password:123456

多层级配置

Consul中的key有层级结构,可以将配置放到目录中,如果有多个服务需要从配置中心读取配置,可以将每个服务的配置放到对应的目录中,如下:

目录创建:

添加配置源:

//配置相关
builder.Host.ConfigureAppConfiguration(config => {
    config.AddConsul("Service1/appsettings.json", options =>
    {
        options.ConsulConfigurationOptions = cco => { cco.Address = new Uri("http://127.0.0.1:8500"); }; //consul地址
        options.Optional = true; 
        options.ReloadOnChange = true; // 热加载
        options.OnLoadException = exceptionContext => { exceptionContext.Ignore = true; }; //忽略异常
    });
});

参考:
https://www.cnblogs.com/yaopengfei/p/12916884.html

posted @ 2022-06-03 15:57  .Neterr  阅读(959)  评论(0编辑  收藏  举报