可选项

优质
小牛编辑
128浏览
2023-12-01

Uragano还提供了一些可选项配置,用于服务调优

service.AddUragano(context.Configuration, builder =>
                    {
                        builder.AddClient<LoadBalancingPolling>();
                        builder.AddConsul();
                        builder.AddOptions();
                    });
选项说明
ThreadPool_MinThreads线程池的最小线程数(具体应用请查看线程池相关文档)
ThreadPool_CompletionPortThreadsI/O线程的数量(具体应用请查看线程池相关文档)
Consul_Node_Status_Refresh_Interval使用Consul时,客户端更新节点状态的频率,单位毫秒
Server_DotNetty_Channel_SoBacklogDotNetty的SoBacklog值
DotNetty_Connect_TimeoutDoNetty连接超时时间,单位毫秒
DotNetty_Enable_Libuv是否启用Libuv
DotNetty_Event_Loop_CountDotNetty的工作线程数
Remoting_Invoke_CancellationTokenSource_Timeout客户端等待服务器端返回消息的等待时间,单位毫秒,默认值是60秒。你可能会对这个配置有疑问,熔断里不是已经有一个超时机制了吗?为什么还需要这个配置!其实这两个是完全不一样的,这里就需要提到DotNetty的通信机制了,DotNetty采用的异步非阻塞模式,但是我们往往需要等待返回结果,这里就需要用到TaskCompletionSource,如果服务器端出现异常,无法响应消息,那么TaskCompletionSource就会一直等待,所以必须有一个超时机制。