跳至主要內容

2.2 配置中心

linguicheng...大约 2 分钟

简介

配置中心是对服务配置进行统一管理,用来动态修改程序执行的机制。

为什么要使用配置中心?

  • 统一性:所有服务配置统一在配置中心管理,这样更简单,不易出错。

  • 高效性:如果一个服务有多个副本,按传统方式需要改几遍,很费时间。有了配置中心,只需要改一遍就可以及时同步给其他服务副本,非常高效、及时。

  • 安全性:配置跟随源码一起保存在代码库中,容易造成配置泄漏。

创建一个Web Api项目

安装依赖包

dotnet add package Wing.Consul

Program代码

using Wing;

var builder = WebApplication.CreateBuilder(args);

builder.Host.AddWing(builder => builder.AddConsul());

// Add services to the container.

builder.Services.AddControllers();

builder.Services.AddWing();

var app = builder.Build();

// Configure the HTTP request pipeline.

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();

添加Consul配置

{
  // 是否启用配置中心,默认启用
  "ConfigCenterEnabled": true,
  "Consul": {
    "Url": "http://localhost:8500",
    "Service": {
      //Http  Grpc
      "Option": "Http",
      "HealthCheck": {
        "Url": "http://localhost:2210/health",
        //单位:秒
        "Timeout": 10,
        //单位:秒
        "Interval": 10
      },
      "Name": "Wing.Demo_2.2",
      "Host": "localhost",
      "Port": 2210,
      "LoadBalancer": {
        //RoundRobin  WeightRoundRobin LeastConnection
        "Option": "WeightRoundRobin",
        //权重
        "Weight": 60
      },
      // 配置中心的Key,如果为空,则取服务名
      "ConfigKey": "",
      "Scheme": "http",
      "Developer": "linguicheng"
    },
    //定时同步数据时间间隔,单位:秒 小于等于0表示立即响应
    "Interval": 10,
    //数据中心
    "DataCenter": "dc1",
    //等待时间,单位:分钟
    "WaitTime": 3
  }
}

配置中心添加配置信息

{
   "Test":"hello wing"
}

查看运行效果

  • 读取配置中心添加的配置信息
[HttpGet]
public string Test()
{
    return App.Configuration["Test"];
}
上次编辑于:
贡献者: linguicheng