2.2 配置中心
...大约 2 分钟
简介
配置中心
是对服务配置进行统一管理,用来动态修改程序执行的机制。
为什么要使用配置中心?
统一性:所有服务配置统一在
配置中心
管理,这样更简单,不易出错。高效性:如果一个服务有多个副本,按传统方式需要改几遍,很费时间。有了
配置中心
,只需要改一遍就可以及时同步给其他服务副本,非常高效、及时。安全性:配置跟随源码一起保存在代码库中,容易造成配置泄漏。
创建一个Web Api项目
提前准备:安装并启动Consul
打开 Visual Studio 2022 并创建Web Api项目(点击查看完整示例代码2.2)
安装依赖包
dotnet add package Wing.Consul
Install-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
}
}
配置中心添加配置信息
- 运行示例 1.3,浏览器访问 http://localhost:1310/wing/index.html#/config ,添加配置Key
Wing.Demo_2.2
并输入json
格式配置,如下图:
{
"Test":"hello wing"
}
查看运行效果
- 读取配置中心添加的配置信息
[HttpGet]
public string Test()
{
return App.Configuration["Test"];
}
- 运行当前示例程序,浏览器访问 http://localhost:2210/weatherforecast/test ,可以看到我们添加的配置,如下图: