启动服务端
优质
小牛编辑
128浏览
2023-12-01
Uragano支持Web Host,也支持Generic host
Web host
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddUragano(Configuration, builder =>
{
builder.AddServer();
builder.AddConsul();
});
}
Generic host
var hostBuilder = new HostBuilder().ConfigureHostConfiguration(builder =>
{
builder.SetBasePath(Directory.GetCurrentDirectory());
}).ConfigureAppConfiguration((context, builder) =>
{
builder.AddJsonFile("uragano.json", false, true);
builder.AddCommandLine(args);
})
.ConfigureServices((context, service) =>
{
service.AddUragano(context.Configuration, builder =>
{
builder.AddServer();
builder.AddConsul();
});
}).ConfigureLogging((context, builder) =>
{
builder.AddConfiguration(context.Configuration.GetSection("Logging"));
builder.AddConsole();
});
await hostBuilder.RunConsoleAsync();
AddServer,AddConsul这两个方法都提供多种重载
配置
"Uragano": {
"Server": {
"address": "{LOCALIP}",
"port": 5002,
"weight": 1,
"certUrl": "",
"certPwd": "",
},
"ServiceDiscovery": {
"Consul": {
"Client": {
"Address": "http://localhost:8500"
},
"Service": {
"Id": null,
"Name": "RPC",
"tags": null,
"EnableTagOverride": false,
"meta": null,
"HealthCheckInterval": 10
}
}
}
}
Server 部分是我们的RPC服务的服务器配置,监听地址和端口号,{LOCALIP}表示使用当前服务器的局域网IP,weight是当前服务节点的权重,主要用于 负载 算法;当配置了certUrl,certPwd,服务器端就启用了Tls,如果启用了Tls,对应的客户端也需要配置证书,并且同一组服务(服务注册与发现Name相同)必须使用同一套证书。
ServiceDiscovery:Consul 部分是Consul相关的配置,需要注意的是:
1.id是注册服务的唯一id,不配置或者是null的话系统会自动以服务的{IP}:{Port}作为服务id。
2.Name是向Consul里注册的服务名称,需要跟刚才申明的服务接口里的ServiceDiscoveryName属性定义的名称一致。
运行项目即可启动服务。