码迷,mamicode.com
首页 > Web开发 > 详细

.net core HttpClient 性能优化

时间:2021-06-10 18:25:29      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tco   chain   val   tcp   间隔   连接   code   manage   机制   

1、使用HttpClientFactory工厂;

2、Startup里ConfigureServices添加HttpClient的具体的客户端服务;(注册到DI容器 )

services.AddHttpClient("SystemService", c =>
{
c.BaseAddress = new Uri(Configuration["ApiConfig:SystemService"]);
c.Timeout = TimeSpan.FromSeconds(30);
});

3、增加默认连接数和启用保活机制

在Program的Main方法里添加 

  //增加保活机制,表明连接为长连接
  client.DefaultRequestHeaders.Connection.Add("keep-alive");
  
  //启用保活机制(保持活动超时设置为 2 小时,并将保持活动间隔设置为 1 秒。)
  ServicePointManager.SetTcpKeepAlive(true, 7200000, 1000);
  
   //默认连接数限制为2,增加连接数限制
  ServicePointManager.DefaultConnectionLimit = 512;

4、尝试使用Socket通信连接

var client = new HttpClient(new SocketsHttpHandler()
{
    //考虑忽略使用代理
    UseProxy = false,
    //考虑增加连接数配置
    MaxConnectionsPerServer = 100,
    //考虑忽略重定向响应
    AllowAutoRedirect = false,
    //考虑忽略SSL证书验证
    SslOptions = new SslClientAuthenticationOptions()
    {
        RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true
    },
    //考虑数据压缩设置
    AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip,
  })
  {
      BaseAddress = new Uri(""),
      Timeout = TimeSpan.FromSeconds(30),
  };

 

new HttpClient(new SocketsHttpHandler()看第一句代码。

 

.net core HttpClient 性能优化

标签:tco   chain   val   tcp   间隔   连接   code   manage   机制   

原文地址:https://www.cnblogs.com/puzi0315/p/14870363.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!